def generate_kurdish_words(pattern, vowels, consonants, non_adjacent_pairs):
if len(pattern) == 0:
return ['']
first = pattern[0]
rest = pattern[1:]
words = []
if first == 'V':
for vowel in vowels:
if (len(rest) > 0 and (vowel, rest[0]) in non_adjacent_pairs):
continue
rest_words = generate_kurdish_words(rest, vowels, consonants, non_adjacent_pairs)
words.extend([vowel + w for w in rest_words])
elif first == 'C':
for consonant in consonants:
rest_words = generate_kurdish_words(rest, vowels, consonants, non_adjacent_pairs)
words.extend([consonant + w for w in rest_words])
return words
vowels = 'aeêiîouû'
consonants = 'bcçdfghjklmnpqrsştvwxyz'
patterns = [
'VC',
'CV',
'CC',
'VCV',
'VCC',
'CVC',
'CCV',
'VCVC',
'VCCV',
'VCCC',
'CVVV',
'CVVC'
]
non_adjacent_pairs = [('î', 'î'), ('î', 'ê')]
for pattern in patterns:
words = generate_kurdish_words(pattern, vowels, consonants, non_adjacent_pairs)
print(f'Muster {pattern}: {words}')