Bonsoir tous le monde !

J'ai un souci, votre aide est la bienvenue. Le problème est la suivant: Je voulais écrire un programme python qui test si une liste de mot pris dans un alphabet est un code. Pour q'une liste de mot soit un code il faut remplir deux condition :
1) if faut que les élément de chaque mot de la liste appartiennent à l'alphabet;
2) aucun mot ne doit être le préfixe d'un autres dans la liste.
J'ai réussi a faire le petit 1)
voici le code source qui n'est pas très optimale mais pour débutant ça passe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
#pour stocker l'alphabet
alphabet = ""
 
alphabet1 = input("entrer l'alphabet :")
alphabet = alphabet1
#le code est composé d'un ensemble de mot separer par un space
code = input("entrer une serie de mot separer par un space : ")
 
#on transforme l'ensemble de code en une liste
nouveau_code = code.split()
print(nouveau_code)
 
drapeau = 1 #on declare un boolean pour test
 
for i in nouveau_code: #on parcours toute la liste nouveau_code 
    for j in i:        #on parcours chaque element du mot de la liste
        if j not in alphabet: #on verifie est-ce que l'element n'appartient pas à l'alphabet
            drapeau = 0     #si oui on met drapeau à 0
if drapeau == 1: #si oui alors c'est un code 
    print("Le mot {} est un code".format(nouveau_code))
else: #sinon ce n'est pas un code
    print("Le mot {} n'est un alphabet desolé !!! ".format(nouveau_code))
Voici quelques tests :
$ python3 alphabets.py
entrer l'alphabet :01
entrer une serie de mot separer par un space : 01011 100110 0110111
['01011', '100110', '0110111']
Le mot ['01011', '100110', '0110111'] est un code
deuxième teste
$ python3 alphabets.py
entrer l'alphabet :01
entrer une serie de mot separer par un space : 102 666 888
['102', '666', '888']
Le mot ['102', '666', '888'] n'est un alphabet désolé !!!

Mais la question petit 2) m'a vraiment tapé.
Merci d'avance pour votre aide !!!