Skip to content
Related Articles

Related Articles

Print all subsequences of a string in Python

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 20 Aug, 2020
View Discussion
Improve Article
Save Article

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 :

Python3




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

Output:

cba cb ca c ba b a  

pythonic implementations:

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

Python3




# 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')

Output: 

a b c ab ac bc abc

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!