编辑代码

from itertools import product

# 提供的数字范围,每个位置的集合
provided_digits_str = "123 123 123 123"
provided_digits = [set(map(int, digits)) for digits in provided_digits_str.split()]

# 全部数字范围
all_digits = set(range(10))

# 初始化字典存储结果
combinations = {i: [] for i in range(5)}  # 0 到 4 (最多 4 个位置)

# 遍历所有可能的组合
for combo in product(all_digits, repeat=4):
    matched_positions = 0
    for i, digit in enumerate(combo):
        if digit in provided_digits[i]:
            matched_positions += 1
    if matched_positions == 4:  # 值4的特殊情况:每个位置必须取自提供的数字
        if all(combo[i] in provided_digits[i] for i in range(4)):
            combinations[4].append("".join(map(str, combo)))
    else:
        combinations[matched_positions].append("".join(map(str, combo)))

# 让用户选择要打印的值
print("请选择要打印的值(用空格分隔):")
selected_values = input().split()

# 打印选择的值的组合
for value in selected_values:
    if value.isdigit() and 0 <= int(value) <= 4:
        value = int(value)
        print(f"Value {value}:")
        print(" ".join(combinations[value]))
        print()
    else:
        print(f"无效的输入值: {value}")