Cómo pasar elementos de lista como argumentos

Quiero pasar elementos de la lista como argumentos de función como este:

def foo(a,b,c): #do something list=[1,2,3] foo(list) 

No puedo usar foo (lista [0], lista [1], lista [2]), porque no sé cuántos elementos tiene la lista y cuántos argumentos funcionan.

mire la función de entrada en este código: http://pastebin.com/ajDrFmzr

ahora pasa solo 1 argumento (lista) y quiero pasarlo como pocos argumentos

Utilice el operador de desempaquetado * argumento :

 seq = [1, 2, 3] foo(*seq) 

Así que en la función de input se podría utilizar

 getattr(self, func)(*args) 

PD. No asigne un nombre a la list variables, ya que oculta la función incorporada del mismo nombre.