See all How-To Articles

How to Generate All Permutations in Excel

This tutorial demonstrates how to generate all permutations in Excel.

 

generate permutations 5

 

Generate All Permutations

Using the VBA macro, you can generate all possible permutations of given characters. All you need is to create a small piece of code and enter input characters. To achieve this, follow the next steps.

  1. In the Ribbon, go to Developer > Visual Basic. If you don’t have this tab available, find out how to add the Developer tab.

 

generate permutations 1

 

  1. In the VBA window, go to Insert > Module.

 

generate permutations 2

 

  1. In the code window on the right side, paste the following code and save.
Sub GetString()
    Dim xStr As String
    Dim FRow As Long
    Dim xScreen As Boolean
    xScreen = Application.ScreenUpdating
    Application.ScreenUpdating = False
    xStr = Application.InputBox("Enter text to permute:", "Permutation", , , , , , 2)
    If Len(xStr) < 2 Then Exit Sub
    If Len(xStr) >= 8 Then
        MsgBox "Too many permutations!", vbInformation, "Permutation"
        Exit Sub
    Else
        ActiveSheet.Columns(1).Clear
        FRow = 1
        Call GetPermutation("", xStr, FRow)
    End If
    Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
    Dim i As Integer, xLen As Integer
    xLen = Len(Str2)
    If xLen < 2 Then
        Range("A" & xRow) = Str1 & Str2
        xRow = xRow + 1
    Else
        For i = 1 To xLen
            Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
        Next
    End If
End Sub

 

generate permutations 3a

 

  1. Now you have created the GetString macro, and you can run it. In the Ribbon, go to Developer > Macros.

 

generate permutations 3

 

  1. If it’s not already selected, select the macro, and click Run.

 

generate permutations 4

 

  1. In the pop-up window, enter characters for permutation (in this example, abcde), and click OK.

 

generate permutations 5

 

As a result, in Column A, you get all possible (120) permutations of entered characters.

 

generate permutations 6

In addition to the macro described above, Excel has a built in function called the PERMUT function which enables you to calculate how many permutations occur for any given numbers.  This function will only work with numbers and not with text.