# Print all lexicographical greater permutations of a given string

Given a string S, print those permutations of string S which are lexicographically greater than S. If there is no such permutation of string, print -1.

Examples:

Input : BCA
Output : CAB, CBA
Explanation:
Here, S = “BCA”, and there are 2 strings “CAB, CBA” which are lexicographically greater than S.

Input : CBA
Output : -1
There is no string which is lexicographically greater than S, so the output is -1.

Approach: To solve the problem mentioned above we will use STL. Use next_permuation() and prev_permutation() functions to check and the lexicographically greater strings. If the string is greater then print it otherwise print -1.

Below is the implementation of above approach:

 `// C++ program to print the lexicographically ` `// greater strings then the given string ` `#include ` `using` `namespace` `std; ` ` `  `// Function to print the lexicographically ` `// greater strings then the given string ` `void` `print_lexiStrings(string S) ` `{ ` ` `  `    ``// Condition to check if there is no ` `    ``// string which is lexicographically ` `    ``// greater than string S ` `    ``if` `(!next_permutation(S.begin(), S.end())) ` `        ``cout << ``"-1"``; ` ` `  `    ``// Move to the previous permutation ` `    ``prev_permutation(S.begin(), S.end()); ` ` `  `    ``// Iterate over all the ` `    ``// lexicographically greater strings ` `    ``while` `(next_permutation(S.begin(), S.end())) { ` `        ``cout << S << ``"\n"``; ` `    ``} ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` ` `  `    ``string S = ``"ABC"``; ` ` `  `    ``print_lexiStrings(S); ` `} `

Output:

```ACB
BAC
BCA
CAB
CBA
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.