字符串的排列组合
def perms(s=''):
if len(s)<=1: #长度为1的字符串,排列组合就是自己
return [s]
sl=[] #放结果
for i in range(len(s)): #第一个数的可能取值
for j in perms(s[0:i]+s[i+1:]): #排除第一个数
sl.append(s[i]+j)
return (list(set(sl)))
perm_nums = perms('abbdfg')
print('no_repeat_nums',len(perm_nums),perm_nums)
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
def perm(s=""):
if len(s)<=1:
return [s]
else:
s1=[]
for i in range(len(s)):
for j in perm(s[0:i]+s[i+1:]):
s1.append(s[i]+j[:2])
return (list(set(s1)))
perm_num=perm("1234")
m=list(map(int,perm_num)) #map函数把list中的字符串转化成int
print(len(perm_num),m)