def xfrange(start, stop=None, step=1):
    """
	Iterate through an arithmetic progression.

	:param start: Starting number.
	:type start: float, int, long
	:param stop: Stopping number.
	:type stop: float, int, long
	:param step: Stepping size.
	:type step: float, int, long
	"""
    if stop is None:
        stop = start
        start = 0.0
    start = float(start)
    while start < stop:
        yield start
        start += step
