Кирилл составляет 7-буквенные коды из букв П, Р, О, С, Ь, Б, А. Каждую букву нужно использовать ровно 1 раз, при этом код не может начинаться с буквы Ь и не может содержать сочетания РОСА. Сколько различных кодов может составить Кирилл?
Решение через циклы
s = ’ПРОСЬБА’
k = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
for f in s:
for g in s:
w = a+b+c+d+e+f+g
if a != ’Ь’ and all(w.count(i) == 1 for i in w) and ’РОСА’ not in w:
k += 1
print(k)
Решение через itertools
from itertools import permutations
count = set()
for x in permutations(’ПРОСЬБА’):
s = ’’.join(x)
if s[0] != ’Ь’ and ’РОСА’ not in s:
count.add(s)
print(len(count))
Ответ: 4302