在C#中如何生成从aa0000到zz9999的指定格式字符串集合
实现思路
- 前两位为a-z小写字母的全排列,共26*26=676种组合
- 后四位为0000到9999的固定4位数字,不足4位时前面补0,共10000种组合
- 拼接两部分内容即可得到符合规则的字符串
注意事项
- 全量生成所有字符串总计676万条,纯文本总大小约47MB,普通设备均可正常处理,如果仅需逐条使用,优先选择生成器方案降低内存占用
Python 实现示例
全量生成(适合需要一次性使用所有字符串的场景)
import itertools result = [ f"{c1}{c2}{num:04d}" for c1, c2 in itertools.product('abcdefghijklmnopqrstuvwxyz', repeat=2) for num in range(10000) ]
生成器版本(适合逐条遍历使用,几乎无额外内存占用)
import itertools def generate_target_strings(): for c1, c2 in itertools.product('abcdefghijklmnopqrstuvwxyz', repeat=2): for num in range(10000): yield f"{c1}{c2}{num:04d}" # 遍历使用示例 for s in generate_target_strings(): # 此处编写业务逻辑即可 pass
JavaScript 实现示例(Node/浏览器通用)
function * generateTargetStrings() { const letters = 'abcdefghijklmnopqrstuvwxyz' for (let c1 of letters) { for (let c2 of letters) { for (let num = 0; num < 10000; num++) { yield `${c1}${c2}${num.toString().padStart(4, '0')}` } } } } // 遍历使用示例 for (const s of generateTargetStrings()) { // 此处编写业务逻辑即可 }
内容的提问来源于stack exchange,提问作者erosfabbridev
相关产品推荐
相关产品推荐

