Monday, December 22, 2025
HomeLanguagesPHP Program to print all permutations of a given string

PHP Program to print all permutations of a given string

A permutation also called an “arrangement number” or “order,” is a rearrangement of the elements of an ordered list S into a one-to-one

A permutation also called an “arrangement number” or “order,” is a rearrangement of the elements of an ordered list S into a one-to-one correspondence with S itself. A string of length n has n! permutation. 

Source: Mathword(http://mathworld.wolfram.com/Permutation.html)

Below are the permutations of string ABC. 
ABC ACB BAC BCA CBA CAB

Here is a solution that is used as a basis in backtracking.

NewPermutation

PHP




<?php 
// PHP program to print all 
// permutations of a given string. 
  
/* Permutation function @param 
   str string to calculate permutation 
   for @param l starting index @param 
   r end index */
function permute($str, $l, $r
    if ($l == $r
        echo $str. "\n"
    else
    
        for ($i = $l; $i <= $r; $i++) 
        
            $str = swap($str, $l, $i); 
            permute($str, $l + 1, $r); 
            $str = swap($str, $l, $i); 
        
    
  
/* Swap Characters at position @param 
   a string value @param i position 1 
   @param j position 2 @return swapped 
   string */
function swap($a, $i, $j
    $temp
    $charArray = str_split($a); 
    $temp = $charArray[$i] ; 
    $charArray[$i] = $charArray[$j]; 
    $charArray[$j] = $temp
    return implode($charArray); 
  
// Driver Code 
$str = "ABC"
$n = strlen($str); 
permute($str, 0, $n - 1); 
  
// This code is contributed by mits. 
?> 


Output: 

ABC
ACB
BAC
BCA
CBA
CAB

Algorithm Paradigm: Backtracking 

Time Complexity: O(n*n!) Note that there are n! permutations and it requires O(n) time to print a permutation.

Auxiliary Space: O(r – l)

Note: The above solution prints duplicate permutations if there are repeating characters in the input string. Please see the below link for a solution that prints only distinct permutations even if there are duplicates in input.
Print all distinct permutations of a given string with duplicates. 
Permutations of a given string using STL

RELATED ARTICLES

Most Popular

Dominic
32456 POSTS0 COMMENTS
Milvus
111 POSTS0 COMMENTS
Nango Kala
6823 POSTS0 COMMENTS
Nicole Veronica
11958 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12038 POSTS0 COMMENTS
Shaida Kate Naidoo
6958 POSTS0 COMMENTS
Ted Musemwa
7203 POSTS0 COMMENTS
Thapelo Manthata
6911 POSTS0 COMMENTS
Umr Jansen
6890 POSTS0 COMMENTS