def decouper_chaine(chaine, dictionnaire, memo={}):
if chaine in memo:
return memo[chaine]
if chaine == "":
return [[]]
resultats = []
for i in range(1, len(chaine) + 1):
prefixe = chaine[:i]
if prefixe in dictionnaire:
for suffixe_decoupe in decouper_chaine(chaine[i:], dictionnaire, memo):
resultats.append([prefixe] + suffixe_decoupe)
memo[chaine] = resultats
return resultats