Gere combinações de tamanho N a partir de uma lista
Crie uma função que retorne todas as combinações de tamanho n de uma lista. Ordene a lista em ordem lexicográfica crescente.
Exemplos
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) ➞ [[]]Observações
- Ordem lexicográfica: Compare o primeiro elemento:
[1, 2]aparecerá antes de[2, 4]. Se ambas tiverem o mesmo primeiro elemento, compare o segundo:[1, 2]aparece antes de[1, 3], e assim por diante. - Retorne uma lista vazia
[]senexceder o tamanho da lista. - Retorne
[[]]senfor0(veja o exemplo nº 4). (Isso ocorre porque existe apenas uma combinação de tamanho 0: uma lista vazia).