class Squares: def __init__(self, start, stop): self.value = start - 1 self.stop = stop def __iter__(self): return self def next(self): if self.value == self.stop: raise StopIteration self.value += 1 return self.value ** 2 X = Squares(1, 5) print [n for n in X] print [n for n in Squares(1, 5)] print list(Squares(1, 3))