Permutation de chaînes en Python
Trouver toutes les permutations possibles d'une chaîne donnée peut être une tâche difficile. Cependant, Python fournit une solution simple en utilisant le module itertools.
Solution : itertools.permutations()
La méthode itertools.permutations() est spécifiquement conçue pour générer des permutations. . Il prend un itérable en entrée et renvoie un objet générateur qui parcourt toutes les permutations possibles de l'itérable.
Dans le cas d'une chaîne, nous pouvons la convertir en un itérable à l'aide de la fonction list(). Pour obtenir toutes les permutations possibles de la chaîne, nous utilisons le code suivant :
<code class="python">from itertools import permutations string = 'stack' perms = [''.join(p) for p in permutations(list(string))]</code>
Le résultat sera une liste de chaînes contenant toutes les permutations de la chaîne d'origine.
Gestion Doublons
Si vous souhaitez exclure les permutations en double, vous pouvez utiliser un ensemble car il ne conserve que les éléments uniques.
<code class="python">perms = set([''.join(p) for p in permutations(list(string))])</code>
Avantages de itertools.permutations()
Exemple de sortie
Pour la chaîne 'stack', la liste de sortie contiendra les permutations suivantes :
['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc', 'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta', 'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack', 'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks', 'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac', 'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt', 'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk', 'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs', 'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak', 'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks', 'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac', 'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs', 'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta', 'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!