Cómo generar toda la secuencia en este problema matemático

Al dar marcha atrás:

Supongamos que s[ ] es una matriz donde genera las secuencias que desea imprimir. generate(k) es una función que toma un parámetro que representa el índice del número que está configurando actualmente, por lo que s[k] toma todos los valores posibles: si k es 1, s[k] podría ser cualquier cosa, de L a R. De lo contrario, s[k] depende del valor en la posición anterior, y puede variar de s[k - 1] a R, para mantener la secuencia no decreciente. Si k es igual a N + 1, significa que ya generó N números, por lo que simplemente imprime la secuencia generada y luego regresa a las llamadas recursivas anteriores de la función. De lo contrario, si k es mayor que 1, imprima la secuencia generada hasta el momento, porque solicitó todas las secuencias cuya longitud se encuentra entre 1 y N, y luego simplemente continúa generando el número k-ésimo. Si k es 1, significa que no generó ningún número hasta el momento y está comenzando a crear una nueva secuencia en este momento, por eso no debe imprimir la matriz s .

generar (k)

si k == N + 1 {
imprimir m
regreso
}
de lo contrario si k> 1 {
imprimir m
}

si k == 1 {
para i de L a R {
conjunto s [1] = i
generar (k + 1);
}
}
más {
para i de s [k – 1] a R {
conjunto s [k] = i
generar (k + 1);
}
}