Задача Python. Помогите

Сколько 3-буквенных слов можно составить перестановкой букв слова «НАГЛЕЖ»? При условии, что слов с двумя подряд гласными нужно избегать.

Примечание. Подходящие слова — это все возможные последовательности, вне зависимости от того, имеет или нет данный набор букв смысловое содержание. Я написал свое решение, но это условие только для 3-буквенных слов. Может есть какое-то универсальное решение?

cnt =0 
for i in permutations("НАГЛЕЖ", r=3): 
     if (i.count("А") == 1 and i.count("Е") == 0) or (i.count("Е") == 1 and i.count("А") == 0): 
        cnt +=1 
print(cnt)

Ответы (1 шт):

Автор решения: Алексей Р
from itertools import permutations

vowels = set('АОУЫЭЕЁИЮЯ')
word, length = 'наглеж', 3

for comb in permutations(word.upper(), length):
    for x in zip(comb, comb[1:]):
        if len(vowels.intersection(x)) == 2:  # если обе буквы - гласные
            break
    else:  # если цикл пройден до конца, без break,
        print(''.join(comb))  # то печатаем комбинацию
НАГ
НАЛ
НАЖ
НГА
НГЛ
НГЕ
НГЖ
НЛА
НЛГ
...
→ Ссылка