Python全排列
⑴ python作业:用分支语句实现对键盘输入的四个数字按从小到大的顺序排列输出
def permutation(result, str, list):
"""
取一个数组的全排列
list:为输入列表
str:传空字符串
result: 为结果列表
"""
if len(list) == 1:
result.append(str + "," + list[0])
else:
for temp_str in list:
temp_list = list[:]
temp_list.remove(temp_str)
permutation(result, str + "," + temp_str, temp_list)
测试调用
[python] view plain
test = []
permutation(test,"",['cn_444934666','cn_363488188','cn_414478124'])
print test
⑵ Python全排列怎么储存
python最注重的就是格式,因为有格式,所以python没有大括号这样的东西,也没有语句结束词,所以,下次提问把格式打上,大家都很忙,没空研究你这个代码
---------------
没毛病啊,和你预想的一样,代码没有改动
⑶ Python中用递归的思想求ABCDE的全排列
defp(s,res=[]):
#将字符c插入到数列ar中,会有多少种排列
defh(c,ar):
return[ar[:i]+[c]+ar[i:]foriinrange(len(ar)+1)]
#已有结果arr的基础上,如果增加c字符,arr会变成多少种排列
defg(c,arr,res=[]):
ifarr==res==[]:
return[[c]]
elifarr==[]:
returnres
else:
returng(c,arr[1:],res+h(c,arr[0]))
#主体递归
ifs=='':
returnres
else:
returnp(s[1:],g(s[0],res))
if__name__=='__main__':
s='ABCDE'
forxinp(s):
print(''.join(x))
⑷ 用python实现全排列 递增进位制数算法和递减进位制算法。
这个简单. 假设你要N个p t组合, p 和 t的范围是 [pmin, pmax], [tmin, tmax]. :
import random
N = 100
pmin = 0
pmax = 1000
tmin = 0
tmax = 100
r = random.Random()
r.seed() #刷新随即数种子
for i in range(N)
p = r.randint(pmin, pmax)
t = r.randint(rmin, rmax)
s = p*t
print p,t,s
可以把N pmin pmax tmin tmax,设置为你需要的参数。
⑸ 怎么用python把 梦幻西游 写出缺少一个字的全排列
#-*-coding:utf-8-*-
str1=u'梦幻西游'
foriinstr1:
list1=str1.split(i)
iflist1[0]==''orlist1[1]=='':
printlist1[0]+list1[1]
else:
printlist1[0]+''+list1[1]
>>>
幻西游
梦 西游
梦幻 游
梦幻西
⑹ python程序全排列运行不出结果
可以使用回溯法进行全排列,代码如下:
#coding=utf-8
a=['a','b','c','d','e','f']
defcheck(b,index,ch):
foriinb:
ifi==ch:
returnFalse
returnTrue
defenum(b,index):
ifindex==len(a):
print(b)
else:
forqina:
ifcheck(b,index,q):
b=b+q
enum(b,index+1)
b=b[0:-1]
if__name__=='__main__':
b=''
enum(b,0)
运行结果:
⑺ python全排列代码,求解释
defperm(l):
#定义自定义函数函数名为perm参数为l当传入参数时l等于该参数
if(len(l)<=1):
#if语句如果传入的参数l的长度小于等于1(也就是0)则运行下面代码否则跳过该if##语句
return[l]
#返回列表[l]此处为递归的终止
r=[]
#定义列表并初始化r
foriinrange(len(l)):
#for循环(c语言常这么说)迭代i的变化范围为0到l(字母L)的长度-1
s=l[:i]+l[i+1:]
#将l的前三项以及l的第i+1后的字串赋给s
p=perm(s)
#递归将s做perm的处理递归请网络
forxinp:
#迭代p列表
r.append(l[i:i+1]+x)
#将l的第i项添加进r列表
returnr
#返回r列表
函数功能:将传入perm()的字串、列表等参数进行全排列 并返回全排列后的列表
#递归不是人的思考方式…