def verify(frequencies): #verifies that digit frequencies are valid jumped = 0 for i in range(9): diff = frequencies[i] - frequencies[i+1] if diff == 1: jumped += 1 elif diff != 0: return(False) if jumped > 1: return(False) return(True) def add_new_number(freqs,used): #gets next number of sequence j = 0 while True: tempfreqs = freqs[:] if j not in used: for k in str(j): tempfreqs[int(k)] += 1 if verify(tempfreqs): return(j) j += 1 frequencies = [0] * 10 #set initial frequencies of digits to 0 (index is digit) seq = [] #OEIS sequence list, made in order n = 1001 #how many terms you want for _ in range(n): l = add_new_number(frequencies,seq) seq.append(l) for m in str(l): frequencies[int(m)] += 1 #print(seq) #output to console, or as you see fit # with open("b095205.txt", "a") as f: # for i in range(n): # f.write(str(i) + " " + str(seq[i]) + "\n")