Я пытаюсь вырезать некоторые файлы. Для этого я бы хотел переставить все возможные варианты. Есть 3 возможных начала, 40 возможных средних блоков и 3 возможных окончания.
Проблема в том, что мы не знаем, какой длины средний блок. Это может быть 1 блок длиной, но также 40 блоков длиной. Единственное, что мы знаем наверняка, это то, что блоки появляются последовательно, поскольку это PNG, который я пытаюсь восстановить.
Я уже сам пытался написать код с большим количеством циклов for, но пока безуспешно.
Я попробовал следующий код.
s= [[headersList],[idatList],[iendList]]
print(list(itertools.product(*s)))
Я ожидаю, что результат будет примерно таким,
[1, [1], 1]
[1, [1,2] , 1]
[1, [1,2,3], 1]
...
[2, [1] ,1]
[2, [1, 2], 1]
И так далее.
Единственным условием является то, что начальный и конечный блоки должны находиться в соответствующем начале и конце массива. Средние блоки должны быть размером от 1 до 40 в последовательном порядке.