Print all subsequences of a string in Python

Given a string, we have to find out all subsequences of it. A String is a subsequence of a given String, that is generated by deleting some character of a given string without changing its order.
Examples: 
 

Input : abc
Output : a, b, c, ab, bc, ac, abc

Input : aaa
Output : a, aa, aaa

 

Using Pick and Don’t Pick concept :

filter_none

edit
close

play_arrow

link
brightness_4
code

def printSubSequences(STR, subSTR=""):
    """
    function:
        To print all subsequences of string
        concept:
            Pick and Don’t Pick
        variables:
            STR = string
            subSTR = to store subsequence
    """
    if len(STR) == 0:
        print(subSTR, end=" ")
        return
 
    # we add adding 1st character in string
    printSubSequences(STR[:-1], subSTR + STR[-1])
    """
    Not adding first character of the string
    because the concept of subsequence either
    character will present or not
    """
    printSubSequences(STR[:-1], subSTR)
    return
 
 
def main():
    """
    main function to drive code
    """
    STR = "abc"
    printSubSequences(STR)
 
 
if __name__ == "__main__":
    main()
 
# by itsvinayak
chevron_right

Output:

cba cb ca c ba b a  

pythonic implementations:



Prerequisite: itertools.combinations() module in Python to print all possible combinations 
 

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python Implementation of the approach
import itertools
 
def Sub_Sequences(STR):
    combs = []
    for l in range(1, len(STR)+1):
        combs.append(list(itertools.combinations(STR, l)))
    for c in combs:
        for t in c:
            print (''.join(t), end =' ')
 
# Testing with driver code
if __name__ == '__main__':
    Sub_Sequences('abc')
chevron_right

Output: 
a b c ab ac bc abc

 

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




Article Tags :