Permutações de um array

Crie uma função que recebe um array de números e retorna um array contendo todas as permutações possíveis.

Exemplos

permutations([1]) ➞ [[1]]

permutations([1, 7]) ➞ [[1, 7], [7, 1]]

permutations([2, 4, 7]) ➞ [[2, 4, 7], [2, 7, 4], [4, 2, 7], [4, 7, 2], [7, 2, 4], [7, 4, 2]]

Observações

Todos os arrays fornecidos não contêm duplicatas.