Thursday, October 9, 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
32344 POSTS0 COMMENTS
Milvus
87 POSTS0 COMMENTS
Nango Kala
6714 POSTS0 COMMENTS
Nicole Veronica
11877 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11940 POSTS0 COMMENTS
Shaida Kate Naidoo
6834 POSTS0 COMMENTS
Ted Musemwa
7094 POSTS0 COMMENTS
Thapelo Manthata
6789 POSTS0 COMMENTS
Umr Jansen
6791 POSTS0 COMMENTS