擅长:python、mysql、java
<p>您可以使用此选项创建唯一的组合:</p>
<pre><code>from itertools import permutations
alphabet = '0123456789abcdefghijklmnopqrstuvwxyz'
permutations(alphabet, 8)
</code></pre>
<p>如果您想从所有可能但唯一的条目中随机抽取连续递增的数字,您可以尝试以下方法:</p>
<pre><code># Get maximum of possible entries:
from functools import reduce
import operator
import math
counts = [8,36]
permuations = int(math.factorial(sum(counts))/reduce(operator.mul, map(math.factorial, counts), 1))
# Generate all possible entries (generator)
from itertools import permutations, islice
alphabet = '0123456789abcdefghijklmnopqrstuvwxyz'
g = permutations(alphabet, 8)
# select a list of random indexes to retrieve
from random import sample, seed
n = 5
seed(101)
lst = sorted(sample(range(0, permuations), 5))
# print 5 values from the original generator based on the random indexes
for i in lst:
print(next(islice(g, i, None)))
</code></pre>
<p>基本上,您创建所有可能的排列(唯一的组合),然后创建一个随机但唯一的索引列表。现在你对指数进行排序,这就是结果总是在增加的原因。然后通过所有可能排列的对应值匹配索引</p>