n = 105 a = [0] * n previous = {} excluded = {} for i in range(n): v = 1 while True: if v not in excluded: excluded[v] = set() previous[v] = [] break if i not in excluded[v]: break v += 1 a[i] = v for j in previous[v]: excluded[v].add(2 * i - j) previous[v].append(i) print(a)