[python] Générer une séquence qui considère les mêmes éléments

Générer une séquence contenant les mêmes éléments

Avec itertools.permutations, des éléments supplémentaires sont générés pour le même élément. Utilisé lors du traitement des mêmes numéros, des mêmes caractères, du même ordre, etc. Je l'ai présenté plus tôt dans Comment utiliser le générateur, mais je l'ai présenté seul car il était difficile pour moi de le trouver. github source: permutation.py

permutation.py


def permutations(iterable, permutation=[]):
    if not iterable: 
        yield permutation
        pass
    for i in [iterable.index(i) for i in set(iterable)]:
        yield from permutations(iterable[:i] + iterable[i+1:], permutation + [iterable[i]])

Le rendement est-il récursif? De plus, il renvoie le rendement à distance. Je le règle à chaque fois pour éviter la duplication du même élément.

Cela semble un peu lent à coller avec des tranches, alors dites-moi s'il existe un bon moyen.

Recommended Posts

[python] Générer une séquence qui considère les mêmes éléments
Génération de séquence
Python open et io.open sont les mêmes
[Python] Combine tous les éléments dans un tableau
[python] Vérifier les éléments de la liste tous, tous
58 Le même château
Construire plusieurs environnements Python sur le même système
Obtenir la taille (nombre d'éléments) de Union Find en Python
Programme Python qui recherche le même nom de fichier
[Python] Affiche toutes les combinaisons d'éléments de la liste
Trouvez le maximum de Python
le zen de Python
[Python] Fractionner la date
En Python, les éléments de la liste sont triés et sortis sous forme d'éléments et de multiples.
Obtenez le nombre d'éléments spécifiques dans la liste python
Obtenez la date et l'heure actuelles en Python, en tenant compte du décalage horaire
[Python3] "A // B" et "math.floor (A / B)" ne sont pas toujours les mêmes! ??