пытался перебирать каждый список с вложенными циклами for, затем я понял, что мне нужно будет использовать рекурсию, потому что число списков является переменным. Но я застрял на том, как это сделать. Вложенные циклы дали мне вывод выше, но он по существу жестко запрограммирован для этого случая.
Попробуйте это (он использует itertools.product ):
import itertools
li = [['3', '2', '6'], ['6', '5', '3', '9'], ['9', '8', '6']]
result = [''.join(i) for i in itertools.product(*li)]
print(result)
Выходы:
['369', '368', '366', '359', '358', '356', '339', '338', '336', '399', '398', '396', '269', '268', '266', '259', '258', '256', '239', '238', '236', '299', '298', '296', '669', '668', '666', '659', '658', '656', '639', '638', '636', '699', '698', '696']
Если вы хотите преобразовать каждый элемент в int
:
result = [int(''.join(i)) for i in itertools.product(*li)]