Дамир составляет 5-буквенные коды из букв О, Л, Ь, Г, А. Слова должны соответствовать следующим условиям: Каждую букву нужно использовать ровно 1 раз; Ь нельзя ставить первым и нельзя ставить после гласной. Сколько различных кодов может составить Дамир?
Решение через циклы
a = ’ОЛЬГА’
count = set()
for x1 in a:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
s = x1+x2+x3+x4+x5
if s[0] != ’Ь’ and len(set(s)) == len(s) and ’ОЬ’ not in s and ’АЬ’ not in s:
count.add(s)
print(len(count))
Решение через itertools
from itertools import permutations
ans = []
gl = ’ОА’
for i in permutations(’ОЛЬГА’, 5):
s = ’’.join(i)
if s[0] != ’Ь’ and s[s.index(’Ь’) - 1] not in gl:
ans.append(s)
print(len(ans))
Ответ: 48