Я пытаюсь создать алгоритм ветвления и привязки, для этого я хотел бы создать объект итератора, который хранит все возможные комбинации списка элементов размером от 0 до n.
Примите следующееПример для демонстрации:
import itertools as it
list_tmp = ['a', 'b', 'c', 'd']
tmp_it = sum([list(map(list, it.combinations(list_tmp, i))) for i in range(2 + 1)], [])
tmp_it - это список всех возможных комбинаций размера от 0 до 2. Этот код отлично работает для небольших списков, но мне нужно действовать в большем списке, и поэтому я хотел бысохранить характеристики итератора объекта it.combination (генерировать комбинации на лету).Например,
for iteration in it.combinations(list_tmp, 2):
print(iteration)
Есть ли способ сделать это для комбинаций нескольких размеров?Вместо преобразования в список и потери характеристик объекта итератора.