The *args and **kwargs is a common idiom to allow arbitrary number of arguments to functions as described in the section more on defining functions in the Python documentation.
The *args will give you all function parameters as a tuple:
In[1]:def foo(*args):...:for a in args:...:print a
...:...:In[2]: foo(1)1In[4]: foo(1,2,3)123