#https://gist.github.com/fcicq/ddb746042150b4e959e6  
def reversed_range(start, stop=None, step=1):  
  if stop is None:    
    return range(start - step, -step, -step)  
  else:  
    new_start = stop - ((stop-start-1) % step + 1)  
    new_end = new_start - (stop-start+step-1) // step * step  
    if (stop - start) % step == 0 and step < 0: new_start -= step  
    return range(new_start, new_end, -step)  
  
print(reversed_range(1, 10, 2))  
  
print(reversed_range(1, 5, 1))  