def METHOD_NAME(self, lst):
    """
    :return: An iterator over the permutations of the input list
    :type lst: list
    :rtype: iter
    """
    remove = lambda lst0, index: lst0[:index] + lst0[index + 1 :]
    if lst:
        for index, x in enumerate(lst):
            for y in self.METHOD_NAME(remove(lst, index)):
                yield (x,) + y
    else:
        yield ()