1. 程式人生 > >排序組合方法,選出3個數,組成不同的三位數,要求每個三位數不相等

排序組合方法,選出3個數,組成不同的三位數,要求每個三位數不相等

import random
import string
#方法1
def strnum(a,k):
    num1,num2=1,1
    b=[]
    for i in range(1,len(a)+1):
        num1=num1*i
    for i in range(1,len(a)-k+1):
        num2=num2*i
    #print num1,num2
    while True:
        c=string.join(random.sample(a,k)).replace(" ","")
        if int(c) not in b:
            b.append(int(c))
        if len(b)>=(num1/num2):
            break
    print b
    print len(b)

x=['1','2','3','4']
strnum(x,3)

import string
import random
#方法2
b=[]
while True:
    a=['1','2','3','4']
    s=string.join(random.sample(a,3)).replace(" ","")
    if s not in b:
        b.append(s)
    if len(b)>=24:
        break
print b

#方法3
c=[]
for line0 in x:
    for line1 in x:
        for line2 in x:
            if line2!=line0 and line2!=line1 and line0!=line1:
                c.append(int(line0+line1+line2))
print c