可用的最短用户名

2024-10-05 10:45:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python编写一个程序,可以找到最短的可用用户名,比如Gmail

我想从"aaaaaa"开始,以"zzzzzz"结束,我希望能够在任何网站上检查这一点

这是我发现的一个图书馆,我不确定它是否与我正在寻找的相关

https://pypi.org/project/shortuuid/

如果你能帮我解决我需要学习的话题或从哪里开始,我将不胜感激


Tags: httpsorg程序projectpypi图书馆网站gmail
2条回答

您可以从内置的itertools模块中使用permutations

from itertools import permutations

num = 6
chars = "abcdefghijklmnopqrstuvwxyz"

for name in permutations(chars, num):
    print(''.join(name))

说明:

  1. 首先,显然,从itertools导入permutations
from itertools import permutations
  1. 定义两个变量,一个用于存储用户名可以包含的最小字符数,另一个用于存储用户名的所有有效字符
num = 6
chars = "abcdefghijklmnopqrstuvwxyz"
  1. 使用for循环以先前定义的长度遍历先前定义的有效字符的所有排列
for name in permutations(chars, num):
  1. for循环的每个排列都将是一个元组,因此要将它们转换为字符串,请使用str.join()方法。最后,打印出结果
    print(''.join(name))

UUID的主要特性是它们实际上是唯一的,但不一定是最短的

如果您以“aaaaa”开头,以“zzzz”结尾,那么您可能会发现最短的用户名长度为6个字符

如果您只想生成简短的随机用户名,请谨慎尝试以下操作,因为它会生成每个可用字符的每个组合:

from random import choice
from itertools import permutations

def character_permutations(min: int = 2, max: int = 4)
    chars = list('abcdefghijklmnopqrstuvwxyz') + [str(x) for x in range(10)]
    return [''.join(x) for y in range(2,6) for x in permutations(chars, y)]



def character_permutations_gen(min: int = 2, max: int = 4):
    chars = list('abcdefghijklmnopqrstuvwxyz') + [str(x) for x in range(10)]
    for y in range(2,6):
        for x in permutations(chars, y):
            yield ''.join(x)
            
usernames = character_permutations()

这可能是一个很难确定你是否需要谷歌Gmail服务确认正确答案的解决方案。谷歌Gmail服务的收费可能有限,并且可能不允许你只是随机查找可用的用户名

相关问题 更多 >

    热门问题