python random.sample在所有可能的结果后停止采样

Ana*_*ake 1 python random dictionary

我使用random.sample来采样所有可能的数据集组合(约150集).我将测试的样本大小为3,4和5,数据集的范围在2到20个项目之间.

每个数据点将是一个字符串,例如'101A'.我只是将随机采样循环1000次并将这些点存储为有序的连接字符串以取消重复.例如

d['2-101a-124'] = 0 
Run Code Online (Sandbox Code Playgroud)

然后提取数据然后按' - '分割数据.有没有更好的方法呢?限制随机抽样以获得所有组合的次数?

编辑:为了澄清,我需要列表的所有可能组合,即

dataset = ['1','2','3A','4']
Run Code Online (Sandbox Code Playgroud)

当采样3个数据点时,我需要所有组合,如:

combination 1 = ['1','2','3A']
combination 2 = ['2','3A','4']
combination 3 = ['1','3A','4']
combination 4 = ['1','2','4']
Run Code Online (Sandbox Code Playgroud)

Rom*_*huk 5

没有使用标准库?

>>> import itertools
>>> dataset = ['1','2','3A','4']
>>> list(itertools.combinations(dataset, 3))
[('1', '2', '3A'), ('1', '2', '4'), ('1', '3A', '4'), ('2', '3A', '4')]
Run Code Online (Sandbox Code Playgroud)