Python permutations generator: Generate all string permutations
Write a Python program to create a generator that generates all possible permutations of a string.
Sample Solution:
Python Code:
def string_permutations(string):
if len(string) <= 1:
yield string
else:
for i in range(len(string)):
current_char = string[i]
remaining_chars = string[:i] + string[i+1:]
for permutation in string_permutations(remaining_chars):
yield current_char + permutation
# Accept input from the user
input_string = input("Input a string: ")
# Create the string permutations generator
permutations_gen = string_permutations(input_string)
# Generate and print all permutations
print("All permutations of", input_string + ":")
for permutation in permutations_gen:
print(permutation, end = ", ")
Sample Output:
Input a string: abc All permutations of abc: abc, acb, bac, bca, cab, cba,
Input a string: print All permutations of print: print, pritn, prnit, prnti, prtin, prtni, pirnt, pirtn, pinrt, pintr, pitrn, pitnr, pnrit, pnrti, pnirt, pnitr, pntri, pntir, ptrin, ptrni, ptirn, ptinr, ptnri, ptnir, rpint, rpitn, rpnit, rpnti, rptin, rptni, ripnt, riptn, rinpt, rintp, ritpn, ritnp, rnpit, rnpti, rnipt, rnitp, rntpi, rntip, rtpin, rtpni, rtipn, rtinp, rtnpi, rtnip, iprnt, iprtn, ipnrt, ipntr, iptrn, iptnr, irpnt, irptn, irnpt, irntp, irtpn, irtnp, inprt, inptr, inrpt, inrtp, intpr, intrp, itprn, itpnr, itrpn, itrnp, itnpr, itnrp, nprit, nprti, npirt, npitr, nptri, nptir, nrpit, nrpti, nript, nritp, nrtpi, nrtip, niprt, niptr, nirpt, nirtp, nitpr, nitrp, ntpri, ntpir, ntrpi, ntrip, ntipr, ntirp, tprin, tprni, tpirn, tpinr, tpnri, tpnir, trpin, trpni, tripn, trinp, trnpi, trnip, tiprn, tipnr, tirpn, tirnp, tinpr, tinrp, tnpri, tnpir, tnrpi, tnrip, tnipr, tnirp,
Explanation:
In the above exercise,
- The string_permutations generator function generates all possible permutations of a given string.
- It uses recursive logic to generate permutations.
- If the string length is less than or equal to 1, it yields the string itself. Otherwise, it iterates over each character in the string.
- For each character, it generates all permutations of the remaining characters by calling the string_permutations function recursively.
- It yields the current character concatenated with each permutation.
- Next the program accepts a string from the user. It then creates the string_permutations generator using the input string.
Finally, it iterates over the generator and prints all the permutations of the input string.
Flowchart:
Python Code Editor:
Contribute your code and comments through Disqus.
Previous: Python prime number generator using generators.
Next: Generate the next happy number.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics