Python: Алгоритм для перемещения всех целых чисел в списке и придумать все возможные значения?

list = [0,0,...0] 

посмотрите на последний placeholder в списке, увеличьте его на единицу.

 [0,0,...1] [0,0,...2] [0,0,...3] .. .. [0,0,...82] #stop at the last integer in range from 1 to 89 (randomly generated) 

увеличьте его до значения случайного целочисленного диапазона от 1 до 100. Когда последнее значение места находится в конце диапазона, сбросьте этот заполнитель до нуля, перейдите к предыдущему заполнителю и приращению, а затем посмотрите на следующее место и повторите то, что мы сделал выше.

 [0,0,..1,0] [0,0,..1,1] [0,0,..1,2] [0,0,..1,3] .. .. [0,0,..1,77] ################## [0,0,..2,0] [0,0,..2,1] [0,0,..2,2] [0,0,..2,3] .. .. [0,0,..2,41] ################## [0,0,..1,0,0] [0,0,..1,0,1] [0,0,..1,0,2] [0,0,..1,1,0] [0,0,..1,1,1] [0,0,..1,1,2] [0,0,..1,1,3] [0,0,..1,1,0] [0,0,..1,2,0] [0,0,..1,2,1] [0,0,..1,2,2] [0,0,..2,0,0] [0,0,..2,0,1] [0,0,..2,1,0] [0,0,..2,1,1] [0,0,..2,1,2] [0,0,..2,1,3] [0,0,..2,1,4] ################## 

Это продолжается до тех пор, пока все целые числа в списке не будут увеличены.

Установите listLen чтобы число int вы хотите в своем списке, начиналось с

 listLen = 10 # generate lists of length 10 low = 0 # the lower bound of the numbers you want to walk high = random.randint(0,100) # the upper bound of the numbers you want to walk for L in itertools.product(range(low, high+1), repeat=listLen): print(L) 

Если вы хотите выбрать другое случайное число каждого списка, вы можете сделать это вместо этого:

 listLen = 10 low = 0 for L in itertools.product(*[range(low,random.randint(0,100)) for _ in range(listLen)]): print(L)