# Permutations, a simple Algorithm

This post provide a simple method to calculate all the pemutations and it is, at the same time, a tribute to @antirez, the Redis creator, one of the greatest IT people that the world knows.

If you think the permutation algorithm is tricky to develop without a reference, the following is the trivial solution I found, if you read it one time you’ll never forget it.

Let’s assume you want the permutations of the following list:

```
a b c d
```

Consider the list formed by just the first element:

```
a
```

What are the permutations of ‘a’, of course they are just:

```
a
```

Ok, now, take the next element, b. The permutations of a and b are the permutations of a modified to include b in every possible position, that is before a, and after a:

```
(b) a
a (b)
```

Take the next element. c. Insert c in very position of every permutation of ‘a b’:

```
(c) b a
b (c) a
b a (c)
```

and, with the other permutation of ‘a b’

```
(c) a b
a (c) b
a b (c)
```

and you get all the six permutations of ‘a b c’, and so on.

That is simple! :)