Комбинаторика — раздел математики, посвящённый решению задач, связанных с выбором и расположением элементов некоторого множества.
Чтобы использовать функции из библиотеки, необходимо в самом начале python файла написать from itertools import *

1. permutations()
Функция permutations генерирует все возможные перестановки из элементов последовательности. Используется в случаях, когда каждый символ используется 1 раз и порядок символов важен.

2. product
Функция product генерирует все возможные перестановки из элементов последовательности, причем элементы могут повторяться. Используется в случаях, когда каждый символ используется любое количество раз и порядок символов важен.

3. combinations
Функция combinations генерирует уникальные комбинации элементов из последовательности. Порядок элементов не имеет значения, а один и тот же элемент не используется повторно.Используется в случаях, когда каждый символ используется 1 раз и порядок символов не важен.

ПРИМЕР: Все четырехбуквенные слова, в составе которых могут быть только русские буквы А, В, Л, О, Р записаны в алфавитном порядке и пронумерованы начиная с 1. Ниже приведено начало списка.

  • АААА
  • АААВ
  • АААЛ
  • АААО
  • АААР
  • ААВА

Под каким номером идет первое слово, начинающееся на Л?

Посмотреть решение

from itertools import product         # из модуля itertools подключаем функцию product
count=0                               # создаем счетчик и обнуляем его
for i in product("авлор", repeat=4):  # из букв "авлор" создаем 4-буквенные слова
    count+=1                          # присваиваем порядковый номер для каждого слова
    if i[0]=="л":                     # проверяем первую букву каждого слова
        print(count)                  # если условие сработало печатаем номер слова
        break                         # останавливаем программу

Ответ:251

Какое количество 8-буквенных слов вы можете составить из букв слова «информатика», при условии, что каждую букву можно использовать ровно 1 раз, слово начинается на букву Р и заканчивается буквой О. Словом считается любая последовательность букв вне зависимости имеет или нет данный набор букв смысловое содержание.

Посмотреть решение

from itertools import permutations            # из модуля itertools подключаем функцию permutatios
count = 0                                     # создаем счетчик и обнуляем его
for i in permutations("информатика", r=5):    # из букв "информатика" создаем 5-буквенные слова
    if i[0]=="р" and i[-1]=="о":              # проверка условия
        count+=1                              # увеличиваем счетчик на 1 каждый раз, когда условие сработало
print(count)                                  # выводим значение счетчика

Ответ:504