Una permutación, también llamada «número de arreglo» u «orden», es un reordenamiento de los elementos de una lista ordenada S en una correspondencia uno a uno con S mismo. ¡Una string de longitud n tiene n! permutación. Ejemplos:
Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA
Tenemos una solución existente para este problema, consulte Permutaciones de una string dada usando el enlace STL. También podemos resolver este problema en python usando permutaciones de funciones incorporadas (iterables) .
Python3
# Function to find permutations of a given string from itertools import permutations def allPermutations(str): # Get all permutations of string 'ABC' permList = permutations(str) # print all permutations for perm in list(permList): print (''.join(perm)) # Driver program if __name__ == "__main__": str = 'ABC' allPermutations(str)
ABC ACB BAC BCA CAB CBA
Permutación y Combinación en Python Permutaciones de una string dada con caracteres repetidos La idea es usar el diccionario para evitar la impresión de duplicados.
Python3
from itertools import permutations import string s = "GEEK" a = string.ascii_letters p = permutations(s) # Create a dictionary d = [] for i in list(p): # Print only if not in dictionary if (i not in d): d.append(i) print(''.join(i))
GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG
Complejidad de tiempo: O(n!) donde n es el tamaño de la string.
Espacio Auxiliar: O(n!)
Publicación traducida automáticamente
Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA