import random A = [0,7,8,15,16,23,24,31] B = [1,2,3,4,5,6,25,26,27,28,29,30,9,14,17,22] C = [10,11,12,13,14, 18,19,20,21] def sample_k(k): ret = [] for _ in range(k): while True: # select a group v = random.random() if v < .5: g = A elif v < .95: g = B else: g = C # select a num v = random.choice(g) if v not in ret[-6:]: ret.append(v) break return ret print(sample_k(100))
Standard input is empty
[5, 6, 15, 7, 23, 16, 27, 0, 22, 26, 8, 2, 15, 30, 27, 5, 6, 0, 22, 19, 31, 15, 29, 2, 7, 24, 0, 17, 8, 14, 28, 15, 23, 0, 2, 22, 30, 4, 10, 23, 27, 15, 17, 0, 29, 24, 7, 30, 26, 16, 5, 31, 15, 17, 25, 8, 3, 29, 23, 5, 6, 7, 27, 9, 18, 24, 0, 15, 8, 3, 5, 2, 13, 24, 23, 0, 29, 5, 20, 30, 7, 27, 17, 0, 14, 24, 31, 7, 3, 22, 25, 4, 8, 5, 27, 24, 31, 17, 4, 16]