Звездочки дают знать питону что надо ложить все аргументы в эту переменную переданные просто total(1,2,3,4,5) будут в numbers, а как total(а=1,b=2,c=3,d=4,f=5) они будут сохранены в словарь keywords. Причем их можно комбинировать и сами имена не важны.
def f(*l,**d):
print "list ->", l
print "dict ->", d
>>>f(1,2,4,5)
list -> (1, 2, 4, 5)
dict -> {}
>>>f(1,2,4,5, f="fssfds",ff=33)
list -> (1, 2, 4, 5)
dict -> {'ff': 33, 'f': 'fssfds'}
# А тут шестерка после аргументов которые передаются по ключу - это не правильно
>>>f(1,2,4,5, f="fssfds",ff=33,6)
File "<ipython-input-5-e223c56a5547>", line 1
f(1,2,4,5, f="fssfds",ff=33,6)
SyntaxError: non-keyword arg after keyword arg
number и numbers связаны также как x и num
num = range(10)
for x in num:
print x