

'''simple docstring'''

def    A_  ( snake_case ):
  SCREAMING_SNAKE_CASE:Optional[Any]						      =					[]
  if len(snake_case ) == 1:
    return [nums.copy()]
  for _ in range(len(snake_case ) ):
    SCREAMING_SNAKE_CASE:Any						      =					nums.pop(0 )
    SCREAMING_SNAKE_CASE:Union[str, Any]						      =					permute(snake_case )
    for perm in permutations:
      perm.append(snake_case )
    result.extend(snake_case )
    nums.append(snake_case )
  return result


def    A_  ( snake_case ):

  def backtrack(snake_case ):
    if start == len(snake_case ) - 1:
      output.append(nums[:] )
    else:
      for i in range(snake_case      ,       len(snake_case ) ):
        SCREAMING_SNAKE_CASE:List[Any]						      =					nums[i], nums[start]
        backtrack(start + 1 )
        SCREAMING_SNAKE_CASE:Optional[int]						      =					nums[i], nums[start]  # backtrack

  SCREAMING_SNAKE_CASE:int						      =					[]
  backtrack(0 )
  return output


if __name__ == "__main__":
    import doctest

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









'''simple docstring'''

from math import factorial





def    A_  ( snake_case      ,       snake_case ):

  # If either of the conditions are true, the function is being asked
  # to calculate a factorial of a negative number, which is not possible
  if n < k or k < 0:
    raise ValueError("Please enter positive integers for n and k where n >= k" )
  return factorial(snake_case ) // (factorial(snake_case ) * factorial(n - k ))


if __name__ == "__main__":
    print(
        "The number of five-card hands possible from a standard",
        f'''fifty-two card deck is: {combinations(52, 5)}\n''',
    )

    print(
        "If a class of 40 students must be arranged into groups of",
        f'''4 for group projects, there are {combinations(40, 4)} ways''',
        "to arrange them.\n",
    )

    print(
        "If 10 teams are competing in a Formula One race, there",
        f'''are {combinations(10, 3)} ways that first, second and''',
        "third place can be awarded.",
    )






