es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Permutación recursiva sin bucles ni itertools.

Busqué en toda la web una solución, pero no pude encontrar nada.
Necesito ayuda para descifrar el algoritmo para obtener todas las permutaciones con repeticiones.
No se me permite usar loops o ninguna otra biblioteca auxiliar.

Python
def func(num):
# La solución

El “num” representa el número de longitud de cada nodo.

Por ejemplo, si “num=1”, la solución sería “[ ‘a’, ‘b’, ‘c’]”
o si “num=2”, entonces “[ ‘aa’, ‘ab’, ‘ac’, ‘ba’, ‘bb’, ‘bc’, ‘ca’, ‘cb’, ‘cc’]”, etc.

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai
    def func(num):
        # La solución
        if num == 0:
            return []
        elif num == 1:
            return ['a', 'b', 'c']
        else:
            result = []
            for i in func(num-1):
                for j in ['a', 'b', 'c']:
                    result.append(i + j)
            return result
    

    Esta solución utiliza recursión para generar todas las permutaciones con repeticiones.

Comments are closed.