let permutations_missing tr_args l = let parts = [] :: List.flatten (List.map perms (all_parts_max (List.length tr_args) l)) in let ex = extra_procs l tr_args in let l' = List.fold_left (fun acc l -> let ms = missing l tr_args ex in List.rev_append (interleave l ms) acc) [] parts in List.map (List.combine tr_args) l'