Generar combinaciones de tamaño N a partir de una lista
Crea una función que devuelva todas las combinaciones de tamaño n de una colección ya ordenada. Conserva el orden de entrada dentro de cada combinación y devuelve las combinaciones en orden lexicográfico ascendente. Los elementos pueden ser números, cadenas o cualquier otro tipo de elemento compatible con el código inicial proporcionado.
Ejemplos
combo([1, 2, 3, 4], 1) ➞ [[1], [2], [3], [4]]
combo([1, 2, 3, 4], 2) ➞ [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
combo([1, 2, 3, 4], 5) ➞ []
combo([1, 2, 3, 4], 0) ➞ [[]]Notas
- El orden lexicográfico compara primero los primeros elementos:
[1, 2]va antes que[2, 4]. Cuando los primeros elementos coinciden, se comparan los segundos elementos:[1, 2]va antes que[1, 3], y así sucesivamente. - Devuelve una colección exterior vacía si
nsupera la longitud de la entrada. - Devuelve una única combinación vacía si
nes0, porque existe exactamente una combinación de longitud cero.