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) ➞ [[]]Notas
- 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 existe apenas uma combinação de tamanho 0: um array vazio.