Reverse Sort a String - Python
                                        
                                                                                    
                                                
                                                    Last Updated : 
                                                    12 Jul, 2025
                                                
                                                 
                                                 
                                             
                                                                             
                                                             
                            
                            
                                                                                    
                The goal is to take a given string and arrange its characters in descending order based on their Unicode values. For example, in the string "geeksforgeeks", the characters will be sorted from highest to lowest, resulting in a new string like "ssrokkggfeeeee". Let's understand different methods to perform this operation efficiently.
Using sorted() with reverse=True
This is the most straightforward way to reverse sort a string. sorted() function lets us easily sort elements and the reverse=True parameter ensures the order is descending.
            Python
    s = "geeksforgeeks"
res = "".join(sorted(s, reverse=True))
print(res)  
Explanation:
- sorted() function sorts characters of the string.
- Adding reverse=True sorts them in descending order.
- "".join() combines the sorted characters into a single string.
Using list.sort()
If we are working with a string that has been converted into a list, we can use sort() method to reverse sort it in place. This method is slightly faster for large strings as it avoids creating a new list.
            Python
    s = "geeksforgeeks"
# Convert string to list and reverse sort
a = list(s)
a.sort(reverse=True)
res = "".join(a)
print(res)
Explanation:
- list(s) converts the string s into a list of characters.
- a.sort(reverse=True) sorts the list a in descending order.
- "".join(a) combines the sorted characters into a final string.
Using recursion
Recursion provides an unconventional approach to reverse sorting a string. It identifies the maximum character in the string repeatedly and appends it to the result.
            Python
    def fun(s):
    if len(s) <= 1:  # Base case
        return s
    m = max(s)  
    s = s.replace(m, "", 1)  # Remove it from the string
    return m + fun(s)
s = "geeksforgeeks"
res = fun(s)
print(res)
Explanation:
- if len(s) <= 1 checks if the string s has one or fewer characters, in which case it's returned as is (base case).
- m = max(s) finds the maximum character in the string s.
- return m + fun(s) recursively calls fun(s) with the modified string and adds m to the result.
Using for loop
If we want more control and prefer to manually handle the process, we can use a for loop to reverse sort a string.
            Python
    s = "geeksforgeeks"
res = ""
for c in sorted(s, reverse=True): 
    res += c 
print(res) 
Explanation:
- sorted(s, reverse=True) sorts the string s in descending order.
- for c in sorted(s, reverse=True) iterates over each character in the sorted string.
- res += c appends each character to the result string res, which is then printed.
                                                    
                                                
                                                        
                            
                        
                                                
                        
                                                                                    
                                                                Explore
                                    
                                        Python Fundamentals
Python Data Structures
Advanced Python
Data Science with Python
Web Development with Python
Python Practice