def isqrt(n): x = n y = (x + 1) // 2 while y < x: x = y y = (x + n // x) // 2 return x def nextIn(seq): i = isqrt(seq[-1])+1 while((i**2 - seq[-1]) in seq): i += 1 seq.append(i**2 - seq[-1]) def squareseq(n): if(n == 0): return [] seq = [0] while(n > 1): nextIn(seq) ; n -= 1 return seq for x in squareseq(10000): print(x)