def recurse(func, func_locals, *args, **kwargs):
    """for ad-hoc recursion - in case: manual insertion of original *args/**kwargs.
    Use it like  recurse(myfunc,locals(),changed=changed-1,*args,**kwargs)"""
    co=func.func_code
    args = tuple([ kwargs.pop(co.co_varnames[i], func_locals[co.co_varnames[i]])
                   for i in range(co.co_argcount) ]) + args
    return func(*args,**kwargs)
for ad-hoc recursion - in case: manual insertion of original *args/**kwargs.
    Use it like  recurse(myfunc,locals(),changed=changed-1,*args,**kwargs)
recipes/Python/491265_Automatic_Recursion/recipe-491265.py