Làm cách nào để tôi có thể làm cho tập lệnh này hoán tối đa 3 từ kết hợp từ một danh sách?hoán vị danh sách từ Python
list.txt bao gồm 4 dây:
pass
10
test
word
Thay vì kết hợp tất cả từ một đến bốn chữ tức là
output > pass10wordtest, 10testpassword,....etc
Tôi muốn sự kết hợp chính thức là:
output > testpassword, passtestword, 10wordtest,....etc
Mã của tôi:
from itertools import permutations
import os
# GET FILE
script_dir = os.path.dirname(os.path.realpath(__file__))
wordlist_rel_path = "List.txt"
wordlist_abs_file_path = os.path.join(script_dir, wordlist_rel_path)
# READ WORD LIST FROM FILE
word_list = []
print ("\ninput file is:", wordlist_abs_file_path,"\n")
with open(wordlist_abs_file_path) as wordlist:
for line in wordlist:
word_list.append(line.rstrip())
# PRINT INPUT LIST
print ("input list contains:")
print(word_list,"\n")
# GENERATE POWERSET
powerset_list = []
print ("output list is:")
for n in range(1, len(word_list)+1):
for perm in permutations(word_list, n):
powerset_list.append("".join(perm))
print(powerset_list)
# WRITE LIST TO FILE
powerset_rel_path = "powerset.txt"
powerset_abs_file_path = os.path.join(script_dir, powerset_rel_path)
powerset_abs_file = open(powerset_abs_file_path, 'w')
for item in powerset_list:
powerset_abs_file.write("%s\n" % item)
powerset_abs_file.close()
Các công trình lớn! Cảm ơn! – sfad