Например:
array = [4,3,2,0,0,0,0,0,0]
0-й индекс должен иметь только комбинации с 3-м индексом и 6-м индексом. 1-й индекс должен иметь только комбинации с 4-м индексом и 7-м индексом. 2-й индекс должен иметь только комбинации с 5-м индексом и 8-м индексом. (сумма должна оставаться неизменной между этими индексами). Тогда вывод должен быть:
[1,2,2,1,1,0,2,0,0]
[2,1,1,1,1,1,1,1,0]...
В обеих этих комбинациях сумма между соответствующими индексами (перечисленными выше) остается неизменной.






Используя функцию findPairs, полученную из ответ на ваш предыдущий вопрос:
from itertools import product
def findPairs(sum_value, len_value):
lst = range(sum_value + 1)
return [
pair
for pair in product(lst, repeat=len_value)
if sum(pair) == sum_value
]
import itertools
combinations = itertools.product(findPairs(array[0], 3), findPairs(array[1], 3), findPairs(array[2], 3))
result = [list(itertools.chain(*zip(p1, p2, p3))) for p1, p2, p3 in combinations]
print(result[0:10])
[[0, 0, 0, 0, 0, 0, 4, 3, 2], [0, 0, 0, 0, 0, 1, 4, 3, 1],
[0, 0, 0, 0, 0, 2, 4, 3, 0], [0, 0, 1, 0, 0, 0, 4, 3, 1],
[0, 0, 1, 0, 0, 1, 4, 3, 0], [0, 0, 2, 0, 0, 0, 4, 3, 0],
[0, 0, 0, 0, 1, 0, 4, 2, 2], [0, 0, 0, 0, 1, 1, 4, 2, 1],
[0, 0, 0, 0, 1, 2, 4, 2, 0], [0, 0, 1, 0, 1, 0, 4, 2, 1]]
...