Python生成200个不重复激活码的完整实现

咖啡半糖
咖啡半糖
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何使用Python生成200个不重复的激活码。核心逻辑包括利用random模块从指定字符集随机选取16位字符,通过循环生成200个初始字符串,并采用双重循环比对与标记法剔除重复项。文章提供完整代码及分步解析,适用于需要批量生成唯一标识符的开发场景。

Python生成200个不重复激活码的完整实现

本文旨在展示如何使用Python脚本生成200个互不重复的激活码。

整体实现思路

整体实现思路如下:

激活码通常由26个大写英文字母和10个数字混合组成,常见长度为12位或16位。单个激活码内部的字符允许重复,但必须确保生成的200个激活码之间彼此唯一。

测试用例设计

测试用例设计包含三个关键步骤:

1、随机生成包含数字和字母的字符组合;2、批量生成200个字符串;3、执行去重处理。

具体编码步骤

具体编码步骤如下:

第一步:随机生成16位字母与数字混合的字符串。

1. 导入random模块,使用import random语句引入依赖。

2. choice()方法用于从列表、元组或字符串中随机返回一个元素。

调用random.choice(seed),从预定义的字符集seed中随机获取单个字符。

3. join()方法用于将序列中的元素以指定字符连接,生成一个新的字符串。

join()方法的语法格式为:str.join(sequence)。

使用"".join(sa)将随机生成的16个字符列表连接成一个完整的字符串。


import random

# 生成16位字符串
def random_str():
  seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  sa = []
  for i in range(16):
    sa.append(random.choice(seed))
  salt = "".join(sa)
  print(salt)
  return salt

批量生成与去重处理

第二步:生成200个字符串。

使用for循环,反复调用random_str()函数以构建初始列表。


   for i in range(200):
     L.append(random_str()) 

第三步:删除重复的激活码。

1. 编写用于删除重复激活码的函数。

当检测到两个激活码相同时,打印出重复的激活码内容,并对该重复项进行特殊标识。

2. 执行删除重复激活码的操作。

对经过标识处理的激活码进行物理删除,确保最终列表无重复。


def Removal():
  for i in range(200):
    for j in range(i+1,200):
      if L[i] == L[j]:
        print("重复的激活码:", L[i])
        L[i] = '-1'
i = 0
while i < len(L):
  if L[i] == '-1':
    print("删除重复元素", L[i])
    L.remove(L[i])
    i -= 1
  else:
    i +=1

完整代码如下:


import random

# 生成16位字符串
def random_str():
  seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  sa = []
  for i in range(16):
    sa.append(random.choice(seed))
  salt = "".join(sa)
  print(salt)
  return salt

# 去除重复激活码
def Removal():
  for i in range(200):
    for j in range(i+1,200):
      if L[i] == L[j]:
        print("重复的激活码:", L[i])
        L[i] = '-1'


if __name__ =="__main__":
  L = []
  for i in range(200):
    L.append(random_str()) #生成两百个激活码
  L[0] = L[1] #校验L[0]=L[1]时,是否删除重复
  Removal()
  i = 0
  while i < len(L):
    if L[i] == '-1':
      print("删除重复元素", L[i])
      L.remove(L[i])
      i -= 1
    else:
      i +=1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。