Возвращает генератор, выдающий «декартово произведение» для элементов указанных объектов.
itertools.product(*iterables, repeat=1)
-> generator
*iterables -- Объекты, поддерживающие итерирование по своим элементам.

repeat=1 -- Количество повторов. Используется для получения произведения указанного объекта на самого себя.

    from itertools import product


list(product([1, 2], [3, 4]))
# [(1, 3), (1, 4), (2, 3), (2, 4)]

list(product('abc', 'd'))
# [('a', 'd'), ('b', 'd'), ('c', 'd')]

list(product('abc', 'd', 'ef'))
# [('a', 'd', 'e'), ('a', 'd', 'f'), ('b', 'd', 'e'),
# ('b', 'd', 'f'), ('c', 'd', 'e'), ('c', 'd', 'f')]

list(product('zx'))
# [('z',), ('x',)]

list(product('zx', repeat=2))
# [('z', 'z'), ('z', 'x'), ('x', 'z'), ('x', 'x')]

Внимание
Перед вычислением результата функция полностью «вычитывает» в память элементы переданных в неё объектов. Поэтому использование функции целесообразно лишь для последовательностей, имеющих конец.
Синонимы поиска: itertools.product, itertools, product
На заметку
У нас есть представительство во ВКонтакте. Ссылка в самом низу страницы.