Арсений составляет 7-буквенные слова перестановкой букв слова ОКТЯБРЬ. При этом в слове не могут стоять рядом буквы О и Я, а буква Ь не может стоять на первом или последнем месте. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Арсений?
Решение через циклы
a = ’ОКТЯБРЬ’
a1 = ’ОКТЯБР’
count = set()
for x1 in a1:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
for x6 in a:
for x7 in a1:
s = x1+x2+x3+x4+x5+x6+x7
# проверка, что О и Я не стоят рядом и все буквы различны
if ’ОЯ’ not in s and ’ЯО’ not in s and len(set(s)) == len(s):
count.add(s)
print(len(count))
Решение через itertools
from itertools import permutations
count = 0
for x in permutations(’ОКТЯБРЬ’):
s = ’’.join(x)
if s[0] != ’Ь’ and s[-1] != ’Ь’ and (’ОЯ’ not in s) and (’ЯО’ not in s):
count += 1
print(count)