'''simple docstring'''

def 			__UpperCamelCase       (   UpperCAmelCase     ):
 lowercase__				:    Optional[int]  =					[]
 if len(_snake_case     ) == 1:
  return [nums.copy()]
 for _ in range(len(_snake_case     )     ):
  lowercase__				:    Optional[int]  =					nums.pop(0     )
  lowercase__				:    Dict  =					permute(_snake_case     )
  for perm in permutations:
   perm.append(_snake_case     )
  result.extend(_snake_case     )
  nums.append(_snake_case     )
 return result
def 			__UpperCamelCase       (   UpperCAmelCase     ):





 def backtrack(UpperCAmelCase     ):
  if start == len(_snake_case     ) - 1:
   output.append(nums[:]     )
  else:
   for i in range(_snake_case		,     len(_snake_case     )     ):
    lowercase__				:    Dict  =					nums[i], nums[start]
    backtrack(start + 1     )
    lowercase__				:    List[str]  =					nums[i], nums[start]  # backtrack

 lowercase__				:    Dict  =					[]
 backtrack(0     )
 return output


if __name__ == "__main__":
  import doctest

  # use res to print the data in permute2 function
  __a: Union[str, Any]          =   permutea([1, 2, 3])
  print(res)
  doctest.testmod()





"""simple docstring"""
# this script reports modified .py files under the desired list of top-level sub-dirs passed as a list of arguments, e.g.:
#   python ./utils/get_modified_files.py utils src tests examples
#
# it uses git to find the forking point and which files were modified - i.e. files not under git won't be considered
# since the output of this script is fed into Makefile commands it doesn't print a newline after the results

import re
import subprocess
import sys


SCREAMING_SNAKE_CASE :    Union[str, Any]									=				subprocess.check_output("""git merge-base main HEAD""".split()).decode("""utf-8""")
SCREAMING_SNAKE_CASE :    Any									=				subprocess.check_output(F'git diff --name-only {fork_point_sha}'.split()).decode("""utf-8""").split()

SCREAMING_SNAKE_CASE :    Union[str, Any]									=				"""|""".join(sys.argv[1:])
SCREAMING_SNAKE_CASE :    int									=				re.compile(rF'^({joined_dirs}).*?\.py$')

SCREAMING_SNAKE_CASE :    str									=				[x for x in modified_files if regex.match(x)]
print(""" """.join(relevant_modified_files), end="""""")





