a = [1, 2, 5, 6, 100, 101, 1000, 1001, 100000, 100002, 100004]
d = {}
for i in range(len(a)):
for j in range(i + 1, len(a)):
k = a[j] - a[i]
if k in d and a[i] - a[d[k][-1]["start"]] == k:
d[k][-1]["count"] += 1
else:
d[k] = d.get(k, []) + [{"start":i, "count": 1}]
flat = ((x[0], i) for x in d.iteritems() for i in x[1])
start = max(flat, key=lambda x: x[1]["count"])
diff, j = start[0], start[1]["start"]
result = [a[j]]
for i in range(j, len(a)):
if a[i] - a[j] == diff:
result.append(a[i])
j = i
print result