编辑代码

from itertools import combinations

# 基础配置
excluded = {10, 13, 25}
all_numbers = [n for n in range(1, 36) if n not in excluded]

# 预处理条件(已过滤排除号码)
conditions = [
    (2, {6,12,26}, 2),
    (3, {7,14,15,17,20,34}, 2),
    (4, {4,6,9,12,18,19,21,22,26,29,33}, 3),  # 原含13已排除
    (5, {1,9,12,23,32}, 2),
    (6, {8,14,18,19,20,22,23,24,27}, 2),      # 原含25已排除
    (7, {3,8,19,20,24,26,27,33}, 2),
    (8, {11,19,22,31}, 2),                    # 原含10已排除
    (9, {2,11,19,21,26}, 2),
    (10, {12,27}, 1),
    (11, {4,9,12,17,21,23,26,27,32}, 2),
    (12, {1,4,15,19,29,32,34}, 2),
    (13, {5,9,11,28,30,31}, 2),
    (14, {8,23,27,35}, 1),
    (15, {1,5,7,8,15,16,23,24,27,28,30,35}, 3),
    (16, {2,4,7,9,14,15,17,19,21,29,31,34,35}, 3),  # 原含10,25已排除
    (17, {8,12,16,18,23,27,30,33}, 2),
    (18, {1,2,3,8,9,12,18,20,21,23,28,33}, 4),     # 修正格式错误
    (19, {1,2,6,11,17,21,26,32}, (1,3)),            # 原含25已排除
    (20, {5,7,12,15,16,19,29,34,35}, 3),
    (21, {3,5,7,8,11,18,19,21,22,24,26,28,33}, 3), # 原含10,13已排除
    (22, {1,6,16,22,28,32}, 2),                    # 原含13已排除
    (23, {5,7,19,26,27,30,34}, 2),                 # 原含10已排除
    (24, {2,7,9,11,17,19,20,22,24,26,35}, 4),      # 原含13已排除
    (25, {8,16,18,27,33}, 2),
    (26, {3,4,12,19,23}, 2),                       # 原含13已排除
    (27, {1,3,14,15,23,32}, 2),
    (28, {6,9,11,20,31,33}, 2),
    (29, {4,15,24,34}, 2),                         # 原含13已排除
    (30, {6,14,18,23,30}, 2)
]

def is_valid(comb):
    for cond_id, nums, limit in conditions:
        overlap = len(nums & set(comb))
        
        # 区间型条件处理
        if isinstance(limit, tuple):
            if not (limit[0] <= overlap <= limit[1]):
                return False
        # 上限型条件处理
        else:
            if overlap > limit:
                return False
    return True

# 生成并筛选组合
valid_combs = []
for comb in combinations(all_numbers, 5):
    if is_valid(comb):
        valid_combs.append(comb)

# 结果输出
print(f"找到有效组合数量:{len(valid_combs)}")
print("前5个示例组合:")
for i in range(5):
    print(sorted(valid_combs[i]))