Как перебрать все комбинации из списка списков?

Есть некий список:

[
 [1, 2],
 [4, 5, 6],
 [7]
]

Все списки могут иметь любую длину

Как получить всевозможные комбинации? Например:

1, 4, 7;
1, 5, 7;
2, 5, 7;
2, 6, 7;


Ответы (1 шт):

Автор решения: frrusi

Ваш вопрос заключается в Декартовом произведении. В Python за это отвечает itertools.product.

На него уже отвечали. Цитирую ответ Kenan Banks:

import itertools

nested_lists = [
    [1, 2],
    [4, 5, 6],
    [7]
]

for part in itertools.product(*nested_lists):
    print(part)

Что равносильно

for part in itertools.product([1, 2], [4, 5, 6], [7]):
    print(part)
→ Ссылка