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 not in d: d[k] = [1, i]
else: d[k][0] += 1
# gives us dictionary, key is a difference between elements,
# first element of list is count of pairs having this diff, second element is
# starting point
# {
# 1: [2, 1],
# 2: [1, 2],
# 3: [3, 0],
# 4: [3, 0],
# 5: [1, 3],
# 6: [1, 0],
# 7: [2, 0],
# 8: [1, 1],
# 11: [1, 0]
# }
x = max(d.iteritems(), key=lambda x: x[1][0])
diff = x[0]
j = x[1][1]
result = [a[j]]
for i in range(j, len(a)):
if a[i] - a[j] == diff:
result.append(a[i])
j = i
print result
YSA9IFsxLCAyLCA1LCA2LCAxMDAsIDEwMSwgMTAwMCwgMTAwMSwgMTAwMDAwLCAxMDAwMDIsIDEwMDAwNF0KZCA9IHt9Cgpmb3IgaSBpbiByYW5nZShsZW4oYSkpOgogICAgZm9yIGogaW4gcmFuZ2UoaSArIDEsIGxlbihhKSk6CiAgICAgICAgayA9IGFbal0gLSBhW2ldCiAgICAgICAgaWYgayBub3QgaW4gZDogZFtrXSA9IFsxLCBpXQogICAgICAgIGVsc2U6IGRba11bMF0gKz0gMQoKIyBnaXZlcyB1cyBkaWN0aW9uYXJ5LCBrZXkgaXMgYSBkaWZmZXJlbmNlIGJldHdlZW4gZWxlbWVudHMsCiMgZmlyc3QgZWxlbWVudCBvZiBsaXN0IGlzIGNvdW50IG9mIHBhaXJzIGhhdmluZyB0aGlzIGRpZmYsIHNlY29uZCBlbGVtZW50IGlzCiMgc3RhcnRpbmcgcG9pbnQKIyB7CiMgICAgMTogWzIsIDFdLAojICAgIDI6IFsxLCAyXSwKIyAgICAzOiBbMywgMF0sCiMgICAgNDogWzMsIDBdLAojICAgIDU6IFsxLCAzXSwKIyAgICA2OiBbMSwgMF0sCiMgICAgNzogWzIsIDBdLAojICAgIDg6IFsxLCAxXSwKIyAgICAxMTogWzEsIDBdCiMgfQoKeCA9IG1heChkLml0ZXJpdGVtcygpLCBrZXk9bGFtYmRhIHg6IHhbMV1bMF0pCmRpZmYgPSB4WzBdCmogPSB4WzFdWzFdCnJlc3VsdCA9IFthW2pdXQpmb3IgaSBpbiByYW5nZShqLCBsZW4oYSkpOgogICAgaWYgYVtpXSAtIGFbal0gPT0gZGlmZjoKICAgICAgICByZXN1bHQuYXBwZW5kKGFbaV0pCiAgICAgICAgaiA9IGkKCnByaW50IHJlc3VsdA==