Given a string S find all possible substrings of the string in lexicographically-sorted order.

Example 1:

Input : str = "abc"
Output: a ab abc ac b bc câ€‹
Explanation : There are 7 substrings that
can be formed from abc.

Example 2:

Input: str = "aa"
Output: a a aa
Explanation : There are 3 substrings that
can be formed from aa.

Your Task:
You don't need to read ot print anything. Your task is to complete the function AllPossibleStrings() which takes S as input parameter and returns a list of all possible substrings(non-empty) that can be formed from S in lexicographically-sorted order.

Expected Time Complexity: O(2^{n}) where n is the length of the string Expected Space Complexity : O(n * 2^{n})