input: Write a python function to return all subsets of a given set.
  assert subsets(['a', 'b', 'c']) == [[], ['c'], ['b'], ['b', 'c'], ['a'], ['a', 'c'], ['a', 'b'], ['a', 'b', 'c']]
  assert subsets([1, 2, 3]) == [[], [3], [2], [2, 3], [1], [1, 3], [1, 2], [1, 2, 3]]
  assert subsets([]) == [[]]
output: def subsets(s):
      def backtrack(start, path):
          res.append(path)
          for i in range(start, len(s)):
              backtrack(i + 1, path + [s[i]])
      
      res = []
      backtrack(0, [])
      return res