Мне нужно создать функцию, которая принимает список верхней границы и возвращает список со всеми возможными комбинациями вплоть до верхней границы. Например, вход в список [1, 1, 2] даст:
[ [ 0 , 0 , 0 ] ,
[ 0 , 0 , 1 ] ,
[ 0 , 0 , 2 ] ,
[ 0 , 1 , 0 ] ,
[ 0 , 1 , 1 ] ,
[ 0 , 1 , 2 ] ,
[ 1 , 0 , 0 ] ,
[ 1 , 0 , 1 ] ,
[ 1 , 0 , 2 ] ,
[ 1 , 1 , 0 ] ,
[ 1 , 1 , 1 ] ,
[ 1 , 1 , 2 ] , ]
Пока у меня есть это:
def bounded_lists(upper_bound):
start = [0] * len(upper_bound)
print(start)
while start != upper_bound:
for i in range(1, len(upper_bound)+ 1):
while start[-i] < upper_bound[-i]:
start[-i] = start[-i] + 1
print(start)
start[-i] = 0
break
Однако возвращается только:
[0, 0, 0]
[0, 0, 1]
[0, 0, 2]
[0, 1, 0]
[1, 0, 0]