A range implementation which can handle floats

def frange(start, end, step):
    """A range implementation which can handle floats"""
    if start <= end:
        step = abs(step)
    else:
        step = -abs(step)

    while start < end:
        yield start
        start += step