Входными данными являются длины, например, L = [3,3,2] Мне нужно создать итератор itertools, который бы возвращал «сегментированные» перестановки длин в L, в случае [3,3,2] я быесть:
[0,1,2, 3,4,5, 6,7]
[0,1,2, 3,4,5, 7,6]
[0,1,2, 3,5,4, 6,7]
[0,1,2, 3,5,4, 7,6]
[0,1,2, 4,3,5, 6,7]
...
[2,1,0, 5,4,3, 7,6]
Всего должно быть 3! 3! 2!Перестановки.Если вы готовы принять вызов, мне, кроме того, потребуется переставить сегменты с одинаковой длиной, поэтому в приведенном выше случае я бы также имел последовательность выше, но начиная с [3,4,5, 0,1,2, 6,7]
(первые два блока переставлены, поскольку онидлина 3).