(PARI) {unique(v)=local(b); b=1; for(j=2, length(v), if(v[j-1]==v[j], b=0)); b}
{news(v, q)=local(s); s=[]; for(i=1, length(v), s=concat(s, v[i]+q)); s}
{m=310000; print1(p=2, ", "); w1=[p]; w2=[p+p]; w3=[p+p+p]; q=nextprime(p+1); while(q<m, y1=concat(w1, q); y2=concat(w2, news(y1, q)); y3=vecsort(concat(w3, news(y2, q))); if(unique(y3), w1=y1; w2=y2; w3=y3; print1(q, ", ")); q=nextprime(q+1))}
(Python)
from itertools import count, islice
from sympy import nextprime
def
A060276_gen(): # generator of terms
aset1, aset2, aset3, alist, k = set(), set(), set(), [], 2
while True:
bset2, bset3 = {k<<1}, {3*k}
if 3*k not in aset3:
for d in aset1:
if (m:=d+(k<<1)) in aset3:
break
bset2.add(d+k)
bset3.add(m)
else:
for d in aset2:
if (m:=d+k) in aset3:
break
bset3.add(m)
else:
yield k
alist.append(k)
aset1.add(k)
aset2.update(bset2)
aset3.update(bset3)
k = nextprime(k)