#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
随机串口号生成器
用法: python script.py [长度] [数量]
示例: python script.py 12 5 # 生成5个长度为12的随机串
"""
import random
import string
import sys
# --- 配置区 (可修改) ---
# 默认字符集: 大小写字母和数字(去掉易混淆的字符 O,0,I,1,l)
DEFAULT_CHARSET = string.ascii_letters + string.digits
# 如果希望包含特殊符号,取消下面一行的注释
# DEFAULT_CHARSET = string.ascii_letters + string.digits + string.punctuation
# 如果希望严格保证包含数字和字母,可以将下面的标志设为True
GUARANTEE_MIXED = True
# 默认长度和数量
DEFAULT_LENGTH = 16
DEFAULT_COUNT = 1
# ----------------------
def generate_serial(length: int, charset: str | list[str], guarantee: bool = False) -> str:
"""
生成一个随机串。
:param length: 串的长度
:param charset: 字符集(字符串或字符列表)
:param guarantee: 是否保证包含至少一个字母和一个数字
:return: 随机串
"""
if length <= 0:
raise ValueError("长度必须大于0")
# 如果要求保证混合且字符集同时包含字母和数字,则至少需要2个字符
if guarantee and length < 2:
raise ValueError("如果要求包含字母和数字,长度至少为2")
# 保证混合时,先随机挑选一个字母和一个数字的位置
if guarantee:
# 过滤出字母和数字子集(注意:数字可能包含在letters里,但这里以str判断)
letters = [c for c in charset if c.isalpha()]
digits = [c for c in charset if c.isdigit()]
if not letters or not digits:
raise ValueError("字符集必须同时包含字母和数字才能保证混合")
# 随机选一个字母和一个数字,并决定它们的位置
parts = [''] * length
pos_letter = random.randrange(length)
pos_digit = random.randrange(length)
while pos_digit == pos_letter: # 确保不同位置
pos_digit = random.randrange(length)
parts[pos_letter] = random.choice(letters)
parts[pos_digit] = random.choice(digits)
# 剩余的位置随机填充
for i in range(length):
if parts[i] == '':
parts[i] = random.choice(charset)
return ''.join(parts)
else:
# 直接随机生成
return ''.join(random.choices(charset, k=length))
def main():
# 解析命令行参数
length = DEFAULT_LENGTH
count = DEFAULT_COUNT
if len(sys.argv) > 1:
try:
length = int(sys.argv[1])
except ValueError:
print(f"警告: 长度参数 '{sys.argv[1]}' 无效,使用默认长度 {DEFAULT_LENGTH}")
length = DEFAULT_LENGTH
if len(sys.argv) > 2:
try:
count = int(sys.argv[2])
except ValueError:
print(f"警告: 数量参数 '{sys.argv[2]}' 无效,使用默认数量 {DEFAULT_COUNT}")
count = DEFAULT_COUNT
print(f"生成 {count} 个长度为 {length} 的随机串:")
for i in range(count):
print(generate_serial(length, DEFAULT_CHARSET, GUARANTEE_MIXED))
if __name__ == "__main__":
main()
使用说明
运行方法:

- 将脚本保存为
serial_gen.py - 在终端执行:
python serial_gen.py 12 5
(生成5个长度为12的串口号)
配置修改(在脚本顶部的“配置区”调整):
DEFAULT_CHARSET:更换字符集(例如添加string.punctuation以包含特殊符号)GUARANTEE_MIXED:设为True时,确保每个串号同时包含字母和数字(更安全)DEFAULT_LENGTH/DEFAULT_COUNT:修改默认参数
输出示例(长度为16,数量3):
aK7xQm3ZtLw9Rf2B
NpD8vHs4YcE5tUjG
Fb6WdXc1JrA3sKpL
如需生成Windows产品密钥格式(如 XXXXX-XXXXX-XXXXX),或需要排除易混淆字符,请在回复中告诉我,我可以为您调整版本。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播