I am supposed to write two functions that do the exact same thing but their implementation is different. 

The function takes as input a list of positive integers and a positive integer n, and returns True if two of the numbers in list equal to n. Otherwise, it returns False. 

The first function is supposed to use a nested a loop, which I was able to get. 

The second functions is not supposed to use a nested loop. However, you are supposed to sort the list out and then solve the problem. 

Here is what I have for the second function. 

```
def pairs2(lst, n):
    lst.sort()
    if len(lst) == 2:
        if lst[0] + lst[1] == n:
            return True
        else:
            return False
    elif len(lst) >= 3:
        for i in range(len(lst) - 1):
            if lst[0] + lst[i + 1] == n:
                return True
        lst.remove(lst[0])
        pairs2(lst, n)

```

The function works until the last two lines are implemented. After that, it doesn't return anything. What is wrong with my function? 

Also, are they any other alternatives to that I do not use recursion? I just came up with using recursion since it was the first idea that I got.