
№ 1944 (Уровень: Базовый)
(А. Куканова) Аня составляет слова, переставляя буквы в слове ОДЕКОЛОН, избегая слов, где соседние буквы — одинаковые. Сколько различных слов, включая исходное, может составить Аня?

Комментарии к коду программы:
import itertools - Импортируем модуль itertoolss = 'ОДЕКОЛОН' - Создаем строку s с алфавитом 'ОДЕКОЛОН'my_set = set() - Создаем пустое множество my_set, в котором будем хранить найденные “слова”for s in itertools.permutations('ОДЕКОЛОН', 8): - Используем цикл for и функцию permutations() из модуля itertools, чтобы создать все возможные перестановки 8 символов из алфавита 'ОДЕКОЛОН'slovo = ''.join(s) - Собираем строку slovo, объединяя все символы из кортежа s в одну строкуif all(x not in slovo for x in 'ОО ДД ЕЕ КК ЛЛ НН'.split()): - Проверяем, содержит ли строка slovo любую из подстрок 'ОО', 'ДД', 'ЕЕ', 'КК', 'ЛЛ', или 'НН', используя метод all() и генератор спискаmy_set.add(slovo) - Если строка slovo не содержит никаких подстрок, добавляем ее в множество my_setprint(len(my_set)) - Выводим количество элементов в множестве my_set с помощью функции len()import itertools
s = 'ОДЕКОЛОН'
my_set = set()
for s in itertools.permutations('ОДЕКОЛОН', 8):
slovo = ''.join(s)
if all(x not in slovo for x in 'ОО ДД ЕЕ КК ЛЛ НН'.split()):
my_set.add(slovo)
print(len(my_set))