Given a collection of distinct integers, return all possible permutations.
**Input:** [1,2,3]
**Output:**
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1],
]
- Recursively call permutation function and refine the existing permutations.
- Backtracking.