Permutaciones distintas de un número

Dado un número entero N , la tarea es imprimir todas las permutaciones distintas del número N .

Ejemplos:

Entrada: N = 133
Salida: 133 313 331
Explicación:
Hay un total de 6 permutaciones, que son [133, 313, 331, 133, 313, 331].
De todas estas permutaciones, las permutaciones distintas son [133, 313, 331].

Entrada: N = 7668
Salida: 7668 7686 7866 6768 6786 6678 6687 6876 6867 8766 8676 8667

Enfoque: siga los pasos a continuación para resolver el problema:

A continuación se muestra la implementación del enfoque anterior:

Python3

# Python3 program for the above approach
 
from itertools import permutations
 
# Utility function to print
# all distinct permutations
def uniquePermutationsUtil(permute):
   
    p = []
     
    # Traverse the list permute[]
    for i in permute:
       
        # Convert this permutation to list
        permutelist = list(i)
         
        # Append this list to p
        p.append(permutelist)
 
    # Stores unique permutations
    newlist = []
     
    # Traverse list p[]
    for i in p:
       
        # If permutation is
        # not in newlist
        if i not in newlist:
            newlist.append(i)
 
    # Initialize empty list
    permutelist = []
     
    # Traverse the list newlist[]
    for i in newlist:
       
        # Initialize empty string
        s = ""
         
        # Traversing in element list
        for j in i:
           
            # Convert each
            # element to string
            s = s + str(j)
             
        # Convert string to integer
        s = int(s)
         
        # Append the unique
        # permutation to permutelist
        permutelist.append(s)
         
    # Print all distinct permutations
    print(*permutelist)
     
# Function to print all
# distinct permutations
def uniquePermutations(N):
   
    # Stores equivalent string
    # representation of N
    num = str(N)
 
    # Convert each character to
    # integer and store in the list
    lis = list(map(int, num))
     
    # Built in method to store all
    # permutations of the list
    permute = permutations(lis)
     
    # Print unique permutations
    uniquePermutationsUtil(permute)
 
# Driver Code
 
# Given value of N
N = 7668
 
# Function call to find all
# distinct permutations of N
uniquePermutations(N)
Producción: 

7668 7686 7866 6768 6786 6678 6687 6876 6867 8766 8676 8667

 

Complejidad de Tiempo: O(N * N!)
Espacio Auxiliar: O(N * N!)

Publicación traducida automáticamente

Artículo escrito por vikkycirus y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *