Для расчета и перебора комбинаций в Python вы можете использовать метод itertools.combinations(). Метод принимает итератор в качестве аргумента и возвращает все возможные комбинации элементов в итераторе.
Комбинации Python такие же, как и перестановки, за исключением того, что ни один набор не будет иметь те же элементы, что и другой. Так, например, у нас есть список из трех элементов типа [‘android’, ‘iOS’, ‘Symbian’ ], и если мы выберем только два элемента и составим комбинацию, то всего будет три комбинации.
- [‘android’, ‘iOS’]
- [‘android’, ‘Symbian’]
- [‘iOS’, ‘Symbian’]
Пример 1
Давайте возьмем пример на языке Python и реализуем его.
|
1 2 3 4 5 6 7 8 |
from itertools import combinations def combine(arr, s): return list(combinations(arr, s)) array = [21, 18, 19] set = 2 print(combine(array, set)) |
В приведенном выше коде мы сначала импортировали объект комбинаций из модуля itertools. Затем мы определили функцию с именем combine(), которая возвращает список возможных комбинаций. Она принимает аргумент и создает комбинацию этих аргументов.
В этом примере мы составляем список из 2 комбинаций.
Выход

Пример 2
Чтобы вычислить комбинации кортежа в Python, вы можете использовать метод itertools.combinations(). Метод combinations() принимает кортеж в качестве аргумента и возвращает все возможные комбинации элементов кортежа.
|
1 2 3 4 5 6 7 8 |
from itertools import combinations def combine(tup, t): return tuple(combinations(tup, t)) tup =(6, 29, 46) set = 2 print(combine(tup, set)) |
Выход

Пример 3
Чтобы вычислить комбинации словаря в Python, вы можете использовать метод itertools.combinations(). Метод combinations() принимает словарь в качестве аргумента и возвращает все возможные комбинации элементов словаря.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from itertools import combinations def combine(dict, d): return list(combinations(dict,d)) dictA = { 1: 19, 2: 21, 3: 18 } set = 2 print(combine(dictA, set)) |
Смотрите вывод.

