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