Related Articles

# Print all possible strings that can be made by placing spaces

• Difficulty Level : Medium
• Last Updated : 29 Apr, 2021

Given a string you need to print all possible strings that can be made by placing spaces (zero or one) in between them

Examples :

```Input :  str[] = "ABC"
Output : ABC
AB C
A BC
A B C

Input : str[] = "ABCD"
Output : ABCD
A BCD
AB CD
A B CD
ABC D
A BC D
AB C D
A B C D```

If we take a closer look, we can notice that this problem boils down to Power Set problem. We basically need to generate all subsets where every element is a different space.

## C++

 `// C++ program to print all strings that can be``// made by placing spaces``#include ``using` `namespace` `std;`` ` `void` `printSubsequences(string str)``{``    ``int` `n = str.length();``    ``unsigned ``int` `opsize = ``pow``(2, n - 1);`` ` `    ``for` `(``int` `counter = 0; counter < opsize; counter++) {``        ``for` `(``int` `j = 0; j < n; j++) {`` ` `            ``cout << str[j];``            ``if` `(counter & (1 << j))``                ``cout << ``" "``;``        ``}``        ``cout << endl;``    ``}``}`` ` `// Driver code``int` `main()``{``    ``string str = ``"ABC"``;``    ``printSubsequences(str);``    ``return` `0;``}`

## Java

 `// Java program to print all strings that can be``// made by placing spaces``import` `java.util.*;``class` `GFG``{``static` `void` `printSubsequences(String s)``{``    ``char``[] str= s.toCharArray();``    ``int` `n = str.length;``    ``int` `opsize = (``int``)(Math.pow(``2``, n - ``1``));`` ` `    ``for` `(``int` `counter = ``0``; counter < opsize; counter++) {``        ``for` `(``int` `j = ``0``; j < n; j++) {`` ` `            ``System.out.print(str[j]);``            ``if` `((counter & (``1` `<< j)) > ``0``)``                ``System.out.print(``" "``);``        ``}``        ``System.out.println();``    ``}``}`` ` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``String str = ``"AB"``;``    ``printSubsequences(str);``}``}`` ` `/* This code is contributed by Mr. Somesh Awasthi */`

## Python3

 `# Python 3 program to print all strings ``# that can be made by placing spaces``from` `math ``import` `pow`` ` `def` `printSubsequences(``str``):``    ``n ``=` `len``(``str``)``    ``opsize ``=` `int``(``pow``(``2``, n ``-` `1``))`` ` `    ``for` `counter ``in` `range``(opsize):``        ``for` `j ``in` `range``(n):``            ``print``(``str``[j], end ``=` `"")``            ``if` `(counter & (``1` `<< j)):``                ``print``(``" "``, end ``=` `"")`` ` `        ``print``(``"\n"``, end ``=` `"")`` ` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``str` `=` `"ABC"``    ``printSubsequences(``str``)`` ` `# This code is contributed by``# Sanjit_Prasad`

## C#

 `// C# program to print all strings``// that can be made by placing spaces``using` `System;`` ` `class` `GFG {``     ` `    ``// Function to print all subsequences``    ``static` `void` `printSubsequences(String s)``    ``{``        ``char``[] str= s.ToCharArray();``        ``int` `n = str.Length;``        ``int` `opsize = (``int``)(Math.Pow(2, n - 1));``     ` `        ``for` `(``int` `counter = 0; counter < opsize;``                                     ``counter++) ``        ``{``            ``for` `(``int` `j = 0; j < n; j++) ``            ``{``                ``Console.Write(str[j]);``                 ` `                ``if` `((counter & (1 << j)) > 0)``                    ``Console.Write(``" "``);``            ``}``            ``Console.WriteLine();``        ``}``    ``}``     ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``String str = ``"ABC"``;``        ``printSubsequences(str);``    ``}``}`` ` `// This code is contributed by shiv_bhakt.`

## PHP

 ``

## Javascript

 ``

Output :

```ABC
A BC
AB C
A B C```

If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.