Для генерации комбинаторных объектов можно использовать встроенные функции и модули.
В Python есть специальный модуль itertools.
Подробнее о модуле можно узнать по ссылке: модуль itertools
Основные функции:
Примеры использования
Задача №1
Все 4-буквенные слова, составленные из букв К, Л, Р, Т, записаны в алфавитном порядке и пронумерованы. Вот начало списка:
1. КККК
2. КККЛ
3. КККР
4. КККТ
Запишите слово, которое стоит на 67-м месте от начала списка.
import itertools sl = 'КЛРТ' k = 1 for x in itertools.product(sl, repeat = 4): if k == 67: print(''.join(x)) break k += 1
Задача №2
Маша составляет шестибуквенные слова перестановкой букв слова КАПКАН. При этом она избегает слов с двумя подряд одинаковыми буквами. Сколько различных кодов может составить Маша?
import itertools
sl = 'КАПКАН'
k = 0
S = set()
for x in itertools.permutations(sl):
fl = True
for i in range(len(sl)-1):
if x[i] == x[i+1]:
fl = False
if fl:
S.add(x)
print(len(S))