Текстовые решения некоторых заданий

4. СтатГрад 2021 1

4.2. Решение itertools

         Тимофей составляет 5-буквенные коды из букв Т, И, М, О, Ф, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не  может стоять на первом месте, на последнем месте и рядом с буквой И. Все остальные буквы могут встречаться произвольное количество раз или не  встречаться совсем. Сколько различных кодов может составить Тимофей?

#Подключаем библиотеку itertools
from itertools import *
#Формируем комбинации длины 5
p=product("ТИМОФЕЙ",repeat=5)
#Создаем переменную для подсчета комбинаций
res=0
#Перебираем комбинации
for c in p:
    #Формируем строку из получившейся комбинации
    st=c[0]+c[1]+c[2]+c[3]+c[4]
    #Если символов Й не больше 1
    #Первый символ не Й
    #Последний символ не Й
    #Не встречается пара ЙИ
    #Не встречается пара ИЙ
    if(st.count("Й")<=1 and st[0]!="Й" and st[4]!="Й"\
       and st.count("ЙИ")==0 and st.count("ИЙ")==0):
        #Увеличиваем кол-во результатов на 1
        res+=1
#Выводим результат
print(res)

Ответ: 10476.