input: Write a python function to generate all permutations of a list of numbers.
  assert sorted(list(permutations([1, 2, 3]))) == sorted([[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]])
  assert sorted(list(permutations([1, 2]))) == sorted([[1, 2], [2, 1]])
  assert sorted(list(permutations([1]))) == sorted([[1]])
output: def permutations(lst):
      if len(lst) == 0:
          return [[]]
      result = []
      for i in range(len(lst)):
          elem = lst[i]
          rest = lst[:i] + lst[i+1:]
          for p in permutations(rest):
              result.append([elem] + p)
      return result