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