Question: Question: Some people like to spam Internet chatrooms with the single word “LOL”. This often annoys some of the other users, who
will respond by announcing “One more LOL and I’m out”. Still other users will parody this response by posting “One more
‘One more LOL and I’m out’ and I’m out”, and so on, nesting more and more layers of “One more {X} and I’m out”.
Complete the recursive lol() function, which takes a positive (non-zero) integer argument representing the level of nesting

(“One more LOL and I’m out” represents one level of nesting). The function returns a string containing the appropriately-
nested version of the string above. For example, lol(3) would return the string (One more One more One more LOL and I’m out and I’m out and I’m out).

My solution :

```
def lol(y):
middle = "LOL"
part1 = " One more "
part2 = " and I'm out"
templist = []
answer = ""
if y == 0:
    print ("LOL")
else:
    for i in range(y):
        middle = middle + part2
    for j in range(len(middle)):
        templist.append(middle[j])
    templist.reverse()
    for k in range (y):
        templist.append(part1)
    templist.reverse()
    for h in range(len(templist)):
        answer = answer + templist[h]
print (answer)

```

I want to see one solution using recursion. Then I am curious to see the most efficient solution. Thanks!

Answer: 
```
def f(levels_left):
    if levels_left==0:
        return 'LOL'
    return 'One More ' + f(levels_left-1) + ' And I\'m Out'

```
Not a recursive one, but still it doesn't require any lists:

```
def lol(y):
    return 'One more ' * y + 'LOL' + ' and I \'m out' * y

print (lol(3))

```

Output:

```
One more One more One more LOL and I 'm out and I 'm out and I 'm out

```