namespace _46._Permutations; public class Solution { public IList> Permute(int[] nums) { List> l = new List>(); Recursion(l, new List(), nums.ToHashSet()); return l; } private void Recursion(List> result, List cur, HashSet aviable) { if(aviable.Count == 0) { result.Add(cur); return; } foreach(var av in aviable) { var newAviable = aviable.ToHashSet(); newAviable.Remove(av); var newCur = cur.ToList(); newCur.Add(av); Recursion(result, newCur, newAviable); } } }