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'