Write a program to find permutations

# 46. Permutations

Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.

### Example 1:
```
Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
```
### Example 2:
```
Input: nums = [0,1]
Output: [[0,1],[1,0]]
 ```
Constraints:
```
1 <= nums.length <= 6
-10 <= nums[i] <= 10
All the integers of nums are unique.
```

Permutation code:

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
const permutation = (s) => {
    const out = []; 
    const permute = (item, used) => {
        if (item.length === s.length) {
            out.push(Array.from(item));
            return;
        }
        for (let i = 0; i < s.length; i++) {
            if (used[i]) {
                continue; 
            }

            item.push(s[i]);
            used[i] = true;
            permute(item, used);

            used[i] = false;
            item.pop();
        }       
    };

    permute([], Array(s.length).fill(false))
    console.log(out);
    
};

permutation('abc'); 
// Output
[
   ["a", "b", "c"],
   ["a", "c", "b"],
   ["b", "a", "c"],
   ["b", "c", "a"],
   ["c", "a", "b"],
   ["c", "b", "a"]
]