创建一个大的随机 base-29 数字的 Pythonic 方法

Pythonic way to create a big random base-29 number

我正在创建一个程序,它必须在 python 中处理相当大的整数。范围为 0-104677。在内部,我用 base-29 整数表示它们。因此使用字母表:012345679ABCDEFGHIJKLMNOPQRS.

我创建了一个函数来在 python 中创建任意长度的随机 base-29 变量。但是有没有更短、更 pythonic 的方式呢? (如果这甚至是一种正确的方法)。

创建随机 29 进制数的函数:

import random

def random_base(base_number = 29, length = 10)
    alfabet = "012345679ABCDEFGHIJKLMNOPQRS"
    return [alfabet[random.randint(0,base_number - 1)] for _ in range(length)]

因此,是否有一些内置的 python 函数可以执行此操作,或者这是可行的方法吗?

如有不明之处请评论!

提前致谢

您可以使用slices and random.choices

import random

def random_base(base_number = 29, length = 10):
    alfabet = "0123456789ABCDEFGHIJKLMNOPQRS"
    return "".join(random.choices(alfabet[:base_number], k=length))