A ver si entendí el planteo, el problema se da cuando el salto es positivo o negativo ya que en ambos casos hay que resolver diferente.
Mi solución es:
Código Python:
Ver originaldef generateNumber(inicio,final,salto):
lista=[]
if salto > 0:
for x in range (inicio,final+1,salto):
lista.append(x)
return lista
else:
for x in range (inicio,final,salto):
lista.append(x)
return lista
print generateNumber(2,10,2)
print generateNumber(10,10,1)
print generateNumber(20,0,-3)
print generateNumber(15,6,-2)