Calcular combinación basada en la posición

Tengo problemas para resolver este problema:

Cree una función que, dado un conjunto de caracteres C, puede generar la enésima combinación O devolver la serie de combinación dada una posición inicial (Ns) y una posición final (Ne) y la longitud máxima de la combinación (Mx).

Un ejemplo concreto:

Dejar C = [A, B, C]

Sabemos que las diferentes combinaciones se verían como las siguientes suponiendoMx = 3 (la combinación sería diferente para diferentes longitudes):

1. AAA
2. AAB
3. AAC
4. ABA
5. ABB
6. ABC
N. ... Etc

Si tuviéramos que pasar los siguientes parámetros:

C = [A, B, C] Mx = 3 Ns = 3 Ne = 3

esperaríamos el siguiente resultado:

AAC

Si tuviéramos que pasar los siguientes parámetros:

C = [A, B, C] Mx = 3 Ns = 4 Ne = 6

esperaríamos el siguiente resultado:

4. ABA
5. ABB
6. ABC

Para la solución, el lenguaje de programación no es relevante. Sin embargo, se preferiría C #. También lo más importante sería una explicación de cómo se resuelve.

Espero con ansias los deslumbrantes desbordamientos de Guru's of Stack ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta