#
#100DaysOfCode in Python Transcripts

Chapter: Days 19-21: Iteration with itertools

Lecture: Combinations and Permutations

Login or
purchase this course
to watch this video and the rest of the course contents.

0:00
Next up we're going to look at itertools

0:02
combinations and permutations.

0:06
Now let's look at combinations first.

0:10
Now combinations allows you to get

0:12
the possible combinations of an iterable

0:17
of the certain, you know, of a certain string

0:19
or a certain list, okay?

0:22
So let's just get our setup here.

0:25
From itertools import permutations, combinations, okay?

0:34
Let's say we have Mike, Bob and myself.

0:37
All right and we'll make a friends list,

0:40
'cause we're friends right?

0:42
Please say we're friends.

0:44
Mike, Bob, and Julian, and we'll split that, not splut,

0:49
we'll split, okay so we have friends.

0:51
We have this list, Mike, Bob, and Julian.

0:56
Now with combinations, we can see how many

0:59
combinations you'll get of the three of us, okay.

1:02
Now this will actually give us a generator,

1:07
so we're going to use list, we're going to force it

1:10
to be a list okay, so just bear with me here.

1:14
So print(list(combinations())), okay so this is now

1:18
we're talking edit tool stuff

1:20
and in the brackets we have the iterable, okay?

1:24
And the Iris pretty much what we want

1:27
the combinations to include how many combinations we want.

1:31
So for example if we specified Iris two,

1:34
okay it would say, okay combinations of two.

1:37
So Mike and Bob, Bob and Julian,

1:39
Julian and Mike and so on, okay?

1:41
So we're going to actually choose our friends list, all right?

1:46
And then we're going to have a length of 2 okay?

1:50
Let's close all this off.

1:52
And you'll see that we get, well first of all

1:53
we'll get return, it returns tuples, or tuples.

1:59
And look at the combination set that we get there.

2:01
We get Mike and Bob, get Mike and Julian,

2:04
and then we get Bob and Julian.

2:07
And what is it that you've probably noticed?

2:08
There's no order, okay.

2:14
There's no, what if the order mattered?

2:15
If you were trying to return this list

2:16
but you don't like Mike being first every time,

2:19
what happens if you want it to return a tuple

2:23
as Bob, then Mike, Julian, then Mike, Julian then Bob.

2:27
Well that's where permutations comes in.

2:31
So combination gives you just a valid combination,

2:36
it doesn't care about the order, right?

2:39
Permutation will give you not only the valid combinations

2:43
but also in whatever possible order they can be in,

2:49
okay and that's where permutations is super powerful, okay?

2:54
So we'll do it the same thing,

2:55
we'll do the exact same things,

2:57
let's just, may as well copy and paste.

2:59
We'll do print(list(permutations())

3:02
works in the same way, see we got the

3:05
iterable and we got the r.

3:07
We can go whoops, can't type.

3:09
We can go friends and we'll do two as well,

3:12
just so we're keeping this standard.

3:16
And look at that, we now have Mike and Bob,

3:19
Mike and Julian, but then we also see,

3:22
Bob and Mike, so over here we same Mike and Bob,

3:25
and over here now we see Bob and Mike.

3:28
Then there's Bob and Julian, then there's the opposite,

3:30
Julian and Mike, as opposed to Mike and Julian,

3:34
and Julian and Bob instead of Bob and Julian.

3:37
And that's why permutations is awesome.

3:41
I mean they're both awesome but this is such

3:43
a great way of doing it, it's one line of code,

3:47
it's just amazing, if again, itertools is awesome.

3:51
That is permutations and combinations