Gere combinações de tamanho N a partir de um array
Crie uma função que retorne todas as combinações de tamanho n de um array. Ordene o array 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]virá antes de[2, 4]. Se ambos tiverem o mesmo primeiro elemento, compare o segundo:[1, 2]vem antes de[1, 3]e assim por diante. - Retorne um array vazio
[]senexceder o tamanho do array. - Retorne
[[]]senfor0(veja o exemplo nº 4). (Isso ocorre porque há apenas uma combinação de comprimento 0: um array vazio).