You only have s  left (including this one) .
 
 
    
    
    
    
        
    
 
Write a recursive function  for generating all permutations of an input string. Return them as a set. 
Don't worry about time or space complexity—if we wanted efficiency we'd write an iterative version.
To start, assume every character in the input string is unique.
Your function  can have loops—it just needs to also be recursive.
 
Make sure you have a base case!  Otherwise your function  may never terminate!
 
 
	
	
		
			Start your free trial!
		 
		
			Log in or sign up with one click to get immediate access to s 
		
	
	
    
        We'll never post on your wall or message your friends.
     
    
        Where do I enter my password? 
    
        
            
                Actually, we don't support password-based login.  Never have. Just the OAuth methods above. Why?
            
            
            
                It's easy and quick. No "reset password" flow. No password to forget.
             
            
                It lets us avoid storing passwords that hackers could access and use to try to log into our users' email or bank accounts.
             
            
                It makes it harder for one person to share a paid Interview Cake account with multiple people.
             
          
     
 
	 
	
 
	
	
		
			Start your free trial!
		 
		
			Log in or sign up with one click to get immediate access to s 
		
	
	
    
        We'll never post on your wall or message your friends.
     
    
        Where do I enter my password? 
    
        
            
                Actually, we don't support password-based login.  Never have. Just the OAuth methods above. Why?
            
            
            
                It's easy and quick. No "reset password" flow. No password to forget.
             
            
                It lets us avoid storing passwords that hackers could access and use to try to log into our users' email or bank accounts.
             
            
                It makes it harder for one person to share a paid Interview Cake account with multiple people.
             
          
     
 
	 
	
 
        How does the problem change if the string can have duplicate characters?
    
        What if we wanted to bring down the time and/or space costs?
    
 
	
	
		
			Start your free trial!
		 
		
			Log in or sign up with one click to get immediate access to s 
		
	
	
    
        We'll never post on your wall or message your friends.
     
    
        Where do I enter my password? 
    
        
            
                Actually, we don't support password-based login.  Never have. Just the OAuth methods above. Why?
            
            
            
                It's easy and quick. No "reset password" flow. No password to forget.
             
            
                It lets us avoid storing passwords that hackers could access and use to try to log into our users' email or bank accounts.
             
            
                It makes it harder for one person to share a paid Interview Cake account with multiple people.
             
          
     
 
	 
	
 
 
        
        
     
    
    
 
 
 
        
        
        
        
            
            
        
     
  
    
    
        Code editor
     
    
        
        
        
            Reset editor
        
        
             
        
            
             
        
        
             
        
            
                vim/emacs? 
                regular 
                vim 
                emacs 
             
        
        
         
        
            Run
         
     
    
 
 
  
	
	
		
        
        
    
    
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
    
    
        {"id":39833132,"username":"2025-10-31_10:51:56_ze+6sy","email":null,"date_joined":"2025-10-31T10:51:56.440203+00:00","first_name":"","last_name":"","full_name":"","short_name":"friend","is_anonymous":true,"is_on_last_question":false,"percent_done":0,"num_questions_done":0,"num_questions_remaining":46,"is_full_access":false,"is_student":false,"first_payment_date":null,"last_payment_date":null,"num_free_questions_left":3,"terms_has_agreed_to_latest":false,"preferred_content_language":"","preferred_editor_language":"","is_staff":false,"auth_providers_human_readable_list":"","num_auth_providers":0,"auth_email":""}
    
    
	
	
    
        
    
    
    
        
            
                
                    × 
                    
                    
                        
                        
                            
    
    
    
    
        “ I was really hoping to get my money back from you for not getting an offer from a company, but I ended up getting an offer from Google after practicing with your platform.  Thanks for the help!!
        
            — 
            
                Adam
            
         
     
 
                         
                     
                     
                 
             
         
     
    
    
    . . .