Liste todas las combinaciones con reemplazo (o combinaciones con repetición) de tamaño k de un conjunto de n elementos.
Una combinación con reemplazo es un conjunto múltiple desordenado en el que cada elemento también está en el conjunto de n elementos. Tenga en cuenta que:
- No está ordenado Por lo tanto, un conjunto previamente impreso con un orden diferente no debe imprimirse nuevamente.
- Es un conjunto múltiple. El mismo elemento puede (pero no es obligatorio) aparecer más de una vez. Esta es la única diferencia entre una combinación con reemplazo y una combinación normal.
- El conjunto debe tener exactamente k elementos.
Alternativamente, también es un subconjunto de tamaño k del conjunto múltiple que contiene cada uno de los n elementos k veces.
La entrada debe ser o bien n y k , donde los elementos son los primeros n positivos o no negativos números enteros, o los n elementos y k , en las que pueden asumir los n elementos son todos diferentes unos de otros.
El resultado debe ser una lista de todas las combinaciones con reemplazo con el tamaño k del conjunto dado. Puede imprimirlos y los elementos en cada uno de ellos en cualquier orden.
No puede usar combinaciones integradas que generen reemplazos. Pero puede usar builtins para generar combinaciones normales, permutaciones, tuplas, etc.
Este es el código de golf, el código más corto gana.
Ejemplo
Input: 4 2
Output: [0 0] [0 1] [0 2] [0 3] [1 1] [1 2] [1 3] [2 2] [2 3] [3 3]