python

Anagrammes : génération d’anagrammes.

a marqué ce sujet comme résolu.

Bonjour à tous j’aimerais avoir de l’aide pour pouvoir générer des anagrammes.

def an(mot):
    i = amara
    if len(mot) == 1:
        return[mot]     
    reste = []
    for i in range(len(mot)):
        lettre = mot[i]
        rete = mot[:i] + mot[i+1:]
        ans = an(reste)
        for a in ans:
            reste.append(lettre + a)

    return reste        
+0 -0

Salut,

En lisant ton code, j’ai l’impression que tu essayes de générer l’ensemble des anagrammes d’un mot (plutôt qu’un seul comme ce qui est fait dans le lien de A-312). C’est bien ça?

Si oui, je ne comprends pas à quoi sert la ligne 2 et j’ai l’impression que tu t’es un peu mélangé entre les variables rete (drôle de nom) et reste.

Hum, c’est intéressant.

Ton code semble vouloir générer TOUS les anagrammes possible (sans sens).

Par-contre, il y a 2–3 erreurs.

Pourquoi la déclaration de i en première ligne ? Elle est inutile je pense.

Attention, rete et reste ne sont pas du même type ! La fonction an prend un string et retourne une liste. Ta ligne devrait être :

ans = an(rete)

Le reste du code me semble correcte ^^

Edit: Grilled :(

+0 -0

Il y a une difficulté supplémentaire, et je pense qu’elle n’est pas gérée ici. chien a 5 lettres, toutes différentes, le nombre d’anagrammes qu’on peut former à partir de ces 5 lettres est de 5x4x3x2x1=120. Et à partir du mot "amara", ce traitement donnera aussi 120 solutions, mais il y aura plein de doublons.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte