Module: (Python) Subrutinas. recursión


Problem

11/12

Iterando sobre las líneas #1

Theory Click to read/hide

Tarea
En el alfabeto de la lengua de la tribu «Tumba-Yumba» cuatro letras: "K", "L", "M" y "N". Es necesario mostrar en la pantalla todas las palabras que constan de n letras que se pueden construir a partir de las letras de este alfabeto

El problema es un problema normal de fuerza bruta que se puede reducir a un problema más pequeño.
Sustituiremos secuencialmente las letras por la palabra.
La primera posición de una palabra puede ser una de las 4 letras del alfabeto (K, L, M, N).
Primero, coloque la letra 'K' primero. Luego, para obtener todas las variantes con la primera letra 'K', debe enumerar todas las combinaciones posibles de letras en el resto de n-1 posiciones y .etc. (ver foto)
Por lo tanto, se nos ocurrió una solución recursiva: en un ciclo, pasar por todas las primeras letras posibles (poniendo cada letra del alfabeto en primer lugar) y para cada caso construir todas las "colas" posibles; longitud n-1.
 
Iteración recursiva de caracteres
Debe detener la recursividad y generar la palabra terminada cuando la parte restante esté vacía (n = 0), es decir todas las letras ya están seleccionadas. 
El procedimiento recursivo se vería así:  def TumbaPalabras(palabra, alfabeto, n): si n < 1: imprimir (palabra) devolver para c en alfabeto: TumbaPalabras(palabra+c, alfabeto, n - 1)

Problem

En el alfabeto de la lengua de la tribu «tumba-yumba» cuatro letras: "K", "L", "M" y "N". Debe mostrar todas las palabras que constan de letras N  que se pueden construir a partir de las letras de este alfabeto.