Genera 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 lista. Ordena la lista 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] aparecerá antes que [2, 4]. Si ambos tienen el mismo primer elemento, compara el segundo: [1, 2] aparece antes que [1, 3], y así sucesivamente.
  • Devuelve una lista vacía [] si n supera la longitud de la lista.
  • Devuelve [[]] si n es 0 (consulta el ejemplo n.º 4). (Esto se debe a que solo hay una combinación de longitud 0: una lista vacía).