Python 生成全排列的兩種方式

2021-07-28 17:01:20 字數 1087 閱讀 8392

第一種方式:

利用python的itertools模組的permutations()方法

from itertools import permutations

try:

while 1:

s=sorted(raw_input())

l=permutations(s)

for x in l:

print ''.join(x)

except:

pass

第二種方式

利用遞迴方式:

方法:生成乙個標誌為陣列,記錄該元素是否已經被使用

注意的地方:標誌陣列使用完之後,要注意恢復,也就是**中 

# -*- coding:utf-8 -*-

import sys

import copy

def getallp(tp, vis, lens,cur,res,tmp):

if cur == lens:

return

for i in range(lens):

if vis[i] ==0:

vis[i]=1

cur +=1

getallp(tp,vis,lens,cur,res,tmp)

cur -=1

vis[i] =0

tmp.pop()

return res

if __name__ == '__main__':

while true:

tp = sys.stdin.readline().strip()

if not tp:

break

tp = list(tp)

tp.sort()

lens = len(tp)

vis = [0]*lens

res=

res = getallp(tp,vis,lens,0,res,)

for i in res:

print ''.join(i)

Android 生成keystore,兩種方式

一 eclipse 中生成android keystore 建立任意乙個android專案 例如 antforandroid 選擇 create new keystore 並且儲存在乙個目錄下面 本例子儲存在專案跟目錄下 輸入密碼,然後next 填寫一些資訊,填寫的alias 和 密碼不要忘記了 這...

Android 生成keystore,兩種方式

refer 一 eclipse 中生成android keystore 建立任意乙個android專案 例如 antforandroid 選擇 create new keystore 並且儲存在乙個目錄下面 本例子儲存在專案跟目錄下 輸入密碼,然後next 填寫一些資訊,填寫的alias 和 密碼不...

全排列的兩種寫法

對於陣列 1,2,3 他們按照從小到大的全排列是 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 現在給你乙個正整數n,n小於8,輸出陣列 1,2,n 的從小到大的全排列。由出口遞迴回溯時,至少返回2層,第一次因為if語句,第二次因為不滿足for迴圈條件 include in...