
'''simple docstring'''
from abc import ABC, abstractmethod
from argparse import ArgumentParser


class 			SCREAMING_SNAKE_CASE__      (     snake_case_):







				@staticmethod
				@abstractmethod
				def 						UpperCAmelCase_    (       A_     )->		Optional[Any]:







											'''simple docstring'''






											raise NotImplementedError()







				@abstractmethod
				def 						UpperCAmelCase_    (       self     )->		Optional[Any]:







											'''simple docstring'''






											raise NotImplementedError()






'''simple docstring'''
def 		A_(     A						:		list[int]):
							UpperCamelCase   			=     []
							if len(A) == 1:
														return [nums.copy()]
							for _ in range(len(A)):
														UpperCamelCase   			=     nums.pop(0)
														UpperCamelCase   			=     permute(A)
														for perm in permutations:
																					perm.append(A)
														result.extend(A)
														nums.append(A)
							return result







def 		A_(     A						:		str):

							def backtrack(A						:		str):
														if start == len(A) - 1:
																					output.append(nums[:])
														else:
																					for i in range(A		,     len(A)):
																												UpperCamelCase			,	UpperCamelCase   			=     nums[i], nums[start]
																												backtrack(start + 1)
																												UpperCamelCase			,	UpperCamelCase   			=     nums[i], nums[start]  # backtrack

							UpperCamelCase   			=     []
							backtrack(0)
							return output


if __name__ == "__main__":
						import doctest

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




