Справочник по функциям Python

itertools.product

Перебирает все комбинации элементов из нескольких коллекций.

Python 3.13
itertools.product(*iterables, repeat=1)

Параметры

*iterablesIterable
Коллекции, из которых берутся элементы.
repeatintнеобязательный
Сколько раз повторить коллекции, например product("01", repeat=3).

Возвращаемое значение

Итератор кортежей.

Примеры

Все пары из двух коллекций

Python 3.13
from itertools import product

print(list(product('ab', [1, 2])))
[('a', 1), ('a', 2), ('b', 1), ('b', 2)]

Все двоичные строки длины 3

Python 3.13
from itertools import product

print([''.join(bits) for bits in product('01', repeat=3)])
['000', '001', '010', '011', '100', '101', '110', '111']

Подробности

Заменяет вложенные циклы: product(a, b) перебирает пары в том же порядке, что for x in a: for y in b. Число комбинаций равно произведению длин коллекций, поэтому быстро растёт.

Смотрите также