请说一下思路,要求是能够写出ABDE的全部排列
谢谢
Python中用递归的思想求ABCDE的全排列
答案:1 悬赏:40 手机版
解决时间 2021-01-23 12:06
- 提问者网友:人生佛魔见
- 2021-01-22 14:13
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-01-22 15:28
def p(s,res=[]):
#将字符c插入到数列ar中,会有多少种排列
def h(c,ar):
return [ar[:i]+[c]+ar[i:] for i in range(len(ar)+1)]
#已有结果arr的基础上,如果增加c字符,arr会变成多少种排列
def g(c,arr,res=[]):
if arr==res==[]:
return [[c]]
elif arr==[]:
return res
else:
return g(c,arr[1:],res+h(c,arr[0]))
#主体递归
if s=='':
return res
else:
return p(s[1:],g(s[0],res))
if __name__=='__main__':
s='ABCDE'
for x in p(s):
print(''.join(x))
#将字符c插入到数列ar中,会有多少种排列
def h(c,ar):
return [ar[:i]+[c]+ar[i:] for i in range(len(ar)+1)]
#已有结果arr的基础上,如果增加c字符,arr会变成多少种排列
def g(c,arr,res=[]):
if arr==res==[]:
return [[c]]
elif arr==[]:
return res
else:
return g(c,arr[1:],res+h(c,arr[0]))
#主体递归
if s=='':
return res
else:
return p(s[1:],g(s[0],res))
if __name__=='__main__':
s='ABCDE'
for x in p(s):
print(''.join(x))
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |