# Help- Simple recursive function to build a list

Roy Smith roy at panix.com
Wed Mar 2 03:57:41 CET 2005

```In article <mailman.3222.1109731598.22381.python-list at python.org>,
actuary77 <actuary77 at elemental-systems.com> wrote:

> I am trying to write simple recursive function to build a list:
>
>
> def rec(n,alist=[]):
>      _nl=alist[:]
>      print n,_nl
>      if n == 0:
>          print n,_nl
>          return _nl
>      else:
>          _nl=_nl+[n]
>          rec(n-1,_nl)
>
> _nl=[]
> _nl=rec(4)
> print _nl
>
> ### shouldn't this work?
>
> _nl=rec(4)
>
>
>
>
> The output is:
> 4 []
> 3 [4]
> 2 [4, 3]
> 1 [4, 3, 2]
> 0 [4, 3, 2, 1]
> 0 [4, 3, 2, 1]
> None
> None
>
>
> Question:
> ============
> Why isn't the function returning a list?
> Why is function returning None?

I'm not 100% sure what you're trying to do here, but I suspect you left a
"return" out of the else block, i.e. "return rec(n-1, _nl)".  That would
certainly explain why it's returning None.

What problem are you trying to solve, or are you just experimenting with
recursion?

```