How to Generate All Permutations in Excel

Written by

Editorial Team

Reviewed by

Laura Tsitlidze

Last updated on December 12, 2022

This tutorial demonstrates how to generate all permutations in Excel.

 

generate permutations 5

 

Generate All Permutations

Using a VBA macro, you can generate all possible permutations of a given set of characters. All you need to do is create a small piece of code and enter the input characters.

  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 (here, 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, the PERMUT Function, which enables you to calculate how many permutations occur for any given numbers. This function only works with numbers and not with text.

AI Formula Generator

Try for Free

See all How-To Articles