Genera combinaciones de tamaño N a partir de un arreglo

Crea una función que devuelva todas las combinaciones de tamaño n de un arreglo. Ordena el arreglo en orden lexicográfico ascendente.

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

  • Orden lexicográfico: compara el primer elemento: [1, 2] estará antes que [2, 4]. Si ambos tienen el mismo primer elemento, compara el segundo: [1, 2] está antes que [1, 3], y así sucesivamente.
  • Devuelve un arreglo vacío [] si n supera la longitud del arreglo.
  • Devuelve [[]] si n es 0 (consulta el ejemplo n.º 4). Esto se debe a que solo hay una combinación de longitud 0: un arreglo vacío.