import random
import csv
# 身份证前6位真实行政区代码(示例)
regions = [110101, 310104, 440304, 500105] # 建议导入完整地区码库defcalc_check(code17):
weights = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
return"10X98765432"[sum(int(c)*w for c,w in zip(code17,weights))%11]
ids = set()
while len(ids) < 20000:
region = random.choice(regions)
birth = f"{random.randint(1950,2023)}{random.randint(1,12):02}{random.randint(1,28):02}"
seq = f"{random.randint(0,999):03}"
code17 = f"{region}{birth}{seq}"
ids.add(f"{code17}{calc_check(code17)}")
with open('virtual_ids.csv','w',newline='') as f:
writer = csv.writer(f)
writer.writerows([[id] for id in ids])