Question: Given a list of strings, I need to produce a new string by combining all strings' first character. My solution:

```
def K(lst):
    if lst == []:
        return ""
    else:
        return lst[0][0] + K(lst[1:])

```

It works, but I'm sure that's not accumulative recursion.
I also tried to attempt this question by using accumulative recursion, but I couldn't figure out the correct solution.

```
def K(lst):
    acc = ""
    if lst == []:
        return acc
    else:
        acc = acc + lst[0][0]
        return K(lst[1:])

```

I don't know how to mutate `acc`.

Answer: 
I think this is what you are looking for: 

```
def K(lst, s=""):
    if lst == []: return s
    else:         return K(lst[1:], s+lst[0][0])

```

Although this has the structure of accumulative recursion, I am not sure the Python interpretor can actually convert this internally to accumulative recursion.
```
def func(ll,final):
    if len(ll)==1:
        return final+ll[0][0]
    else:
        return func(ll[1:],final+ll[0][0])

final=""
ll=["abc","bcd","cde"]

print func(ll,final)

```

You can try this.