You're thinking of currying, where you bind a function and arguments together to be called later. Usually currying is used so that you can add additional arguments at the time the function is actually called.
Rather than re-write the wheel, here's a link to an example: http://code.activestate.com/recipes/52549/.
If, however, the case you've mocked up in the question really is that simple, you can pass a list of args as positional parameters, or a list of kwargs as named parameters, to another function.
def method1(name):
return 'Hello %s' % name
args = ['Joe']
method1(*args)
def method1a(name=None, salutation=None):
return 'Hello %s %s' % (name, salutation)
kwargs = {'name':'Joe', 'salutation':'Mr'}
method1a(**kwargs)