import random for z in range(3000): i=random.randrange(3) l,r=I[i] yl=random.randrange(l,r+1) yu=min(r,yl+random.randrange(0,50)) Y=tuple(range(yl,yu+1)) t=random.randrange(p) R=set(rng(Y,t,I[i])) B={b for b in range(l,r+1) if all(inV((y+b)%p,t) for y in Y)} if R!=B: print('BAD',z,i,t,yl,yu,R,B) break else:print('OK')