Основные операторы
Стандартная библиотека python - itertools , начиная с версии 2.2, предоставляет множество средств для генерирования комбинаторных объектов.
Подключение библиотеки itertools
from itertools import *
Функции
2.1. Функция генерации перестановок - permutations()
С помощью функции permutations можно сгенерировать все перестановки для итерируемого объекта.
Пример 1
for i in permutations('abc'):
print(i, end=' ') # abc acb bac bca cab cba
print()
for i in permutations('abb'):
print(i, end=' ') # abb abb bab bba bab bba
Исходя из второго вызова заметим, что одинаковые элементы, стоящие на разных позициях, считаются разными.
Пример 2
for i in permutations('abc', 2):
print(i, end=' ') # ab ac ba bc ca cb
Размещение отличается от перестановки ограничением на количество доступных ячеек
2.2. Функция генерации всех комбинаций - product ()
C помощью размещений с повторениями можно легко перебрать все строки фиксированной длины, состоящие из заданных символов
Пример 3
for i in product('abc', repeat=2):
print(i, end=' ') # aa ab ac ba bb bc ca cb cc
2.3. Функция генерации всех сочетаний - combinations ()
Пример 4
for i in combinations('abcd', 2):
print(i, end=' ') # ab ac ad bc bd cd
2.4. Функция генерации всех сочетаний - combinations_with_replacement ()
Результат аналогичен вызову combinations, но в результат также добавлены множества с одинаковыми элементами.
Пример 5
for i in combinations_with_replacement('abcd', 2):
print(i, end=' ') # aa ab ac ad bb bc bd cc cd dd
В результате работы данных функций в переменную заносится набор символов каждой комбинации. Для представления этого набора в виде строки рекомендуется использовать функцию join()
Пример 6
i =['A','B','C']
a=''.join(i)
print(a) # 'ABC'