You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成所有数位互不重复的四位随机数?

解决数位不重复的四位随机数生成问题

你的代码仅随机选取了一个四位数,但未校验数位是否重复。这里提供两种简单可行的解决方法:

方法一:循环校验法

生成随机四位数后,检查它的四个数位是否唯一,不满足条件就重新生成,直到符合要求。代码如下:

import random

while True:
    number = random.choice(range(1000, 10000))
    # 将数字转为字符串,便于逐个检查数位
    digits = str(number)
    # 利用集合自动去重的特性,若集合长度为4则所有数位不重复
    if len(set(digits)) == 4:
        break

print(number)

方法二:直接生成法

直接从0-9中选取4个不重复的数字,确保第一位不为0后组合成四位数。这种方法无需循环校验,效率更高:

import random

# 从0-9中随机挑选4个不重复的数字
digits = random.sample(range(10), 4)
# 若第一位是0则重新选取,保证是四位数
while digits[0] == 0:
    digits = random.sample(range(10), 4)
# 将数字列表转换为整数
number = int(''.join(map(str, digits)))

print(number)

也可以用更简洁的逻辑,先选第一位(1-9),再从剩余数字里选后三位:

import random

# 第一位从1-9中随机选择
first_digit = random.choice(range(1, 10))
# 从剩下的9个数字里选3个不重复的
other_digits = random.sample([d for d in range(10) if d != first_digit], 3)
# 拼接成四位数
number = int(f"{first_digit}{''.join(map(str, other_digits))}")

print(number)

内容的提问来源于stack exchange,提问作者hamsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:27:22