A program that generates a language's lexicon

import random lists=['s','f','a','n','t','v'] s = [ ['ʔ','t','ts','d','d3','b'], ['k','ks','p','ʔ','t','ts','d','d3','b'], ['g','ʔ','t','ts','d','d3','b'] ] f = [ ['v'], ['s','z','f','v'], ['3','ʃ','v'] ] a = [ ['ʋ','w','j','l'], ['ʋ','w','j','l'], ['ʋ','x','w','j','l'] ] n = [ ['m','n'], ['m','n'], ['ŋ','m','n'] ] t = [ ['r', 'R'], [], [] ] v = [ ['ə'], ['æ','y','e','ə'], ['o','a','u','ə'] ] words=[] def sel(gender,list): if list==v: if gender==2: return v[2][0] if list==s: if gender==2: return s[2][0] if list==n: if gender==1: gender=0 return list[gender][random.randint(0,len(list[gender])-1)] def checklast(word,phoneme,list,gender): return [*word][phoneme-1] in list[gender] def checkword(word): for sound in [*word]: if word.count(sound)<=4: freqany=True return not ('dt' in word or 'nm' in word or 'vʋ' in word or 'gʋ' in word or word.endswith(any(s)+any(f)) or freqany or word in words) for generated_word in range(0,1000): word='' length=random.randint(2,10) gender=random.randint(0,2) # WORD CONSTRUCTION for phoneme in range(0,length): if phoneme==0: psbl_phnms=[f,a,v,s,n] word+=sel(gender,random.choice(psbl_phnms)) if phoneme>=1: if checklast(word,phoneme,f,gender): psbl_phnms=[v,s] elif checklast(word,phoneme,a,gender): psbl_phnms=[v] elif checklast(word,phoneme,v,gender): psbl_phnms=[f,a,s,n] elif checklast(word,phoneme,s,gender): psbl_phnms=[f,a,v] elif checklast(word,phoneme,n,gender): psbl_phnms=[s,v] word+=sel(gender,random.choice(psbl_phnms)) if checklast: print(word) words+=word else: continue
WIP FOR NOW