itertools.product()
Возвращает декартово произведение переданных итерируемых объектов.
Сигнатура
itertools.product(*iterables, repeat=1)Аналог вложенных циклов for: перебирает все возможные сочетания элементов, по одному из каждого аргумента. Параметр repeat позволяет перемножить последовательность саму на себя нужное число раз.
import itertools
print(list(itertools.product([1, 2], ['a', 'b'])))
# [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
print(list(itertools.product([0, 1], repeat=2)))
# [(0, 0), (0, 1), (1, 0), (1, 1)]