Мой код на данный момент:
Код: Выделить всё
import itertools
# Create a generator for combinations
def generate_combinations():
numbers = range(2**256) # This is a very large range
for number in numbers:
for combination in itertools.product([number], "01234", repeat=4):
yield combination
# Use the generator to get combinations one at a time
combinations_generator = generate_combinations()
# Process combinations one at a time
for i, combination in enumerate(combinations_generator):
print(combination)
0, '0', 0, '0', 0, '0', 0, '0')
(0, '0', 0, '0', 0, '0', 0, '1')
(0, '0 ', 0, '0', 0, '0', 0, '2')
(0, '0', 0, '0', 0, '0', 0, '3')(0, '0', 0, '0', 0, '0', 0, '4')
(0, '0', 0, '0', 0, '1' , 0, '0')
(0, '0', 0, '0', 0, '1', 0, '1')
(0, '0', 0, ' 0', 0, '1', 0, '2')
(0, '0', 0, '0', 0, '1', 0, '3')
(0 , '0', 0, '0', 0, '1', 0, '4')
(0, '0', 0, '0', 0, '2', 0, '0 ')
(0, '0', 0, '0', 0, '2', 0, '1')
(0, '0', 0, '0', 0, '2', 0, '2')
(0, '0', 0, '0', 0, '2', 0, '3')
(0, '0', 0, '0', 0, '2', 0, '4')
Видите, как он столько раз генерирует комбинации из 0? Я хочу, чтобы комбинация для 0 была сгенерирована только один раз. Я хочу так:
0, '0', 0, '0', 0, '0', 0, '0')
(1, '1 ', 1, '1', 1, '1', 1, '1')
(2, '2', 2, '2', 2, '2', 2, '2')(3, '3', 3, '3', 3, '3', 3, '3')
Число в range() увеличивается на 1 каждое итерации, в то время как строка 01234 остается прежней и генерирует 1, как вы можете видеть по последним числам.
Подробнее здесь: https://stackoverflow.com/questions/788 ... erable-but
Мобильная версия