import itertools def pentagonal_number(n): return n * (3 * n - 1) / 2 if __name__ == '__main__': pentagonals = [] for i in range(1, 10000): pentagonals.append(pentagonal_number(i)) pentagonals = set(pentagonals) combos = itertools.combinations(pentagonals, 2) lowest_diff = 9999999 final_pents = False for combo in combos: total = combo[0] + combo[1] diff = abs(combo[0] - combo[1]) if total in pentagonals and diff in pentagonals: if diff < lowest_diff: lowest_diff = diff final_pents = combo print(final_pents) print(lowest_diff)