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