Interesting use of `map`, but something better would probably be `itertools.chain`. It takes a bunch of iterable as arguments, and then runs through all the elements of each of arg, one after the other.

```python
expanded = list(itertools.chain(*([item] * self.types_ints[item] for item in available)))
```
Taking this apart piece-by-piece:

```python
# A generator for all the lists
([item] * self.types_ints[item] for item in available)
# Expanding the elements of the generator to be the arguments to `itertools.chain`
itertools.chain(*(...))
# And making a list out of the result
list(...)
```