13 lines
		
	
	
	
		
			324 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			13 lines
		
	
	
	
		
			324 B
		
	
	
	
		
			Python
		
	
	
	
	
	
def char_and_rest(i, xs):
 | 
						|
    return xs[i], xs[:i] + xs[i+1:]
 | 
						|
 | 
						|
# perms :: String -> [String]
 | 
						|
def perms(xs):
 | 
						|
    if len(xs) == 1:
 | 
						|
        return [xs]
 | 
						|
    result = []
 | 
						|
    for c, rest in [char_and_rest(i, xs) for i in range(len(xs))]:
 | 
						|
        result += [c + perm for perm in perms(rest)]
 | 
						|
    return result
 | 
						|
 | 
						|
print(perms("cat"))
 |