Все возможные комбинации оставшихся предметов - PullRequest
0 голосов
/ 31 октября 2019

В Python с помощью itertools я могу использовать функцию комбинаций для передачи списка и указанной длины:

results = itertools.combinations([1,2,3,4,5], 2)
print (list(results))

Результат: (1,2),

(1,3),

(1,4),

(2,3),

и т. Д.

У меня вопрос, как я могу сделатьвторой набор комбинаций для определенной длины с оставшимися элементами

Например, если я хочу использовать оставшиеся элементы для создания другой комбинации с длиной 2, результаты должны выглядеть следующим образом:

(1,2) [(3,4), (3,5), (4,5)]

(1,3) [(2,4), (2,5), (4,5)]

и т.д ...

1 Ответ

1 голос
/ 31 октября 2019

Вы могли бы сделать это

import itertools

nums = set(range(1, 6))
for c1 in itertools.combinations(nums, 2):
    c2s = list(itertools.combinations(nums - set(c1), 2))
    print(c1, c2s)
...