Rearrange Word List in Python

How can I make this script to move a maximum of 3 combinations of words from a list?

List.txt consists of 4 lines:

pass 10 test word 

Instead of combining everything from one to four words i.e.

 output > pass10wordtest, 10testpassword,....etc 

I need a final combination:

 output > testpassword, passtestword, 10wordtest,....etc 

My code is:

 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() 
+5
source share
2 answers

How to transfer a maximum of 3 combinations of words from a list?

The permutations function supports the second argument to select only three inputs at a time:

 >>> from itertools import permutations >>> for group in permutations(['pass', '10', 'test', 'word'], 3): print(''.join(group)) pass10test pass10word passtest10 passtestword password10 passwordtest 10passtest 10password 10testpass 10testword 10wordpass 10wordtest testpass10 testpassword test10pass test10word testwordpass testword10 wordpass10 wordpasstest word10pass word10test wordtestpass wordtest10 
+6
source
 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,3): 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() 
+1
source

All Articles