Как сгенерировать следующий список списков из чисел?

В общем такая ситуация.
Есть список чисел, допустим:
five_group = [3, 5, 13, 18, 20]
Нужно сгенерировать список всех комбинаций 5 чисел из 25, в каждой из которых присутствует хотя бы одно из чисел с five_group.
В итоге должен получиться список типа такого:
LIST = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 6], ........................., [20, 22, 23, 24, 25]]

Я могу сгенерировать список списков из всех комбинаций с помощью
COMBINATIONS = [list(i) for i in itertools.combinations(range(1, 26), 5)]

Но как из него убрать комбинации в которых нет чисел из five_group?
  • Вопрос задан
  • 405 просмотров
Решения вопроса 2
в каждой из которых присутствует хотя бы одно из чисел с five_group.

То есть, по сути, это операция пересечения множеств.
five_group = set([3, 5, 13, 18, 20])
COMBINATIONS = [list(i) for i in itertools.combinations(
    range(1, 26), 5) if five_group.intersection(i)]
Ответ написан
@Nerevar_soul
COMBINATIONS = [list(i) for i in itertools.combinations(range(1, 6), 2) if any(k in five_group for k in i)]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы