从给定数字列表中形成数字的不同组合

时间:2019-06-28 12:12:32

标签: python python-3.x

假设我有一个数字列表,说 a [2、3、5、7、11、13、17、19、23、29、31、37]

如何用列表中的数字组合生成所有可能的数字的另一个列表。

预览

Combination new list
t=[23, 25, 27, 211, 213, 217, 219, 223, 229, 231, 237, 32, 35, 37, 311, 313, 317, 319, 323, 329, 331, 337, 52, 53, 57, 511, 513, 517, 519, 523, 529, 531, 537, 72, 73, 75, 711, 713, 717, 719, 723, 729, 731, 737, 112, 113, 115, 117, 1113,.......] 

1 个答案:

答案 0 :(得分:2)

使用permutations

from itertools import permutations
t = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]

result = [int(''.join(str(ele) for ele in perm)) for perm in permutations(t, 2)]
print(*sorted(result))

输出:

23 25 27 32 35 37 52 53 57 72 73 75 112 113 115 117 132 133 135 137 172 173 175  
177 192 193 195 197 211 213 217 219 223 229 231 232 233 235 237 237 292 293 295  
297 311 312 313 313 315 317 317 319 323 329 331 337 372 373 375 377 511 513 517  
519 523 529 531 537 711 713 717 719 723 729 731 737 1113 1117 1119 1123 1129 1131  
1137 1311 1317 1319 1323 1329 1331 1337 1711 17131719 1723 1729 1731 1737 1911
1913 1917 1923 1929 1931 1937 2311 2313 2317 2319 2329 2331 2337 2911 2913 2917
2919 2923 2931 2937 3111 3113 3117 3119 3123 3129 3137 3711 3713 3717 3719 3723
3729 3731