I have a similar Python script for FT8 frequencies, short enough to just copy/paste here.
The IF list is shorter because I listed only the crystals I already have in large enough quantity to select/match them for the filter.
# IF frequencies
fif = (3579,3686,4000,4032,4194,4433,4915,6000,7023,7373,7600,8000,8867,10000,10240,10245,10700,11057,12000,12160,12288,13500,13560,14318,14848,16000,22118,24576)
# LO frequencies
flo = (2458,3579,3686,4000,4032,4096,4194,4332,4434,4500,4915,6000,7023,7373,7600,8000,8064,8467.2,8867,9830,10000,10240,10245,10700,11059.2,12000,12160,12288,13500,13560,14318,14745.6,14848,16000,17734,18432,18543.2,20000,20480,21250,22118.4,24000,24576,25000,27000,27120,28224,32768,36500)
# RF frequencies
fs = (1840,3573,5357,7074,10136,14074,18100,21074,28074)
# Max pull percentage to consider. 0.0005 = 500ppm
dfmax = 0.0005
for f1 in flo :
? ? for f2 in fif :
? ? ? ? fup = f1 + f2
? ? ? ? fdn = abs(f1-f2)
? ? ? ? for frf in fs :
? ? ? ? ? ? df1 = (frf-fup)/(1.0*f1)
? ? ? ? ? ? if (abs(df1) < dfmax) :
? ? ? ? ? ? ? ? print (frf,f2,f1,df1)
? ? ? ? ? ? df2 = (frf-fdn)/(1.0*f1)
? ? ? ? ? ? if (abs(df2) < dfmax) :
? ? ? ? ? ? ? ? print (frf,f2,f1,df2)