input: Write a python function to generate all permutations of a string.
  assert set(permute_string('ABC')) == set(['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA'])
  assert set(permute_string('123')) == set(['123', '132', '213', '231', '312', '321'])
  assert set(permute_string('ab')) == set(['ab', 'ba'])
output: def permute_string(s):
      def backtrack(path, options):
          if not options:
              permutations.append(path)
              return
          for i in range(len(options)):
              backtrack(path + options[i], options[:i] + options[i+1:])
      
      permutations = []
      backtrack("", s)
      return permutations