Just change the last line to
return fib(start, leng)
This will go down the line of the recursion to do the "next bit" of work and return the final product that is based on your base case defined earlier in your code as your escape route:
# Escape route
if len(start) == leng:
print start
return start
Once you hit the return in your escape route, the return gets propagated back up the call stack, each call to return fib(start, leng)
returning up to itself the complete answer. Once the call stack is back in your original call to the function (made elsewhere), the function actually completes and returns your expected value.