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. Число комбинаций равно произведению длин коллекций, поэтому быстро растёт.
