具体的にはざっくりこういうことをしたんだけど
何かいい方法ないかな

items = [item1,item2,item3]
prms = [prm1,prm2,prm3]
# prms = [prm1]

max_prm_index = len(prms)-1
for i,item in enumerate(items):
 item( prms[min(i,max_prm_index)] )

prmsがprm1の一個しかなかったら、itemsのitem全部にprm1を適用
prmsがitemsと同じ数だけ複数入ってたら、順番通りにitemsにprmsを適用
って感じ

もちろん場合分けでいいとは思うけど
再帰内にかぶる処理があるのでどうしたもんか