I found an interesting problem on https://www.codewars.com/kata/57675f3dedc6f728ee000256:
Build Tower Advanced
---

Build Tower by the following given arguments:
__number of floors__ (integer and always greater than 0)
__block size__ (width, height) (integer pair and always greater than (0, 0))

Tower block unit is represented as `*`

* Python: return a `list`;
* JavaScript: returns an `Array`;

Have fun!
***

for example, a tower of 3 floors with block size = (2, 3) looks like below
```
[
  '    **    ',
  '    **    ',
  '    **    ',
  '  ******  ',
  '  ******  ',
  '  ******  ',
  '**********',
  '**********',
  '**********'
]
```
and a tower of 6 floors with block size = (2, 1) looks like below
```
[
  '          **          ', 
  '        ******        ', 
  '      **********      ', 
  '    **************    ', 
  '  ******************  ', 
  '**********************'
]
```
***
Go take a look at [Build Tower](https://www.codewars.com/kata/576757b1df89ecf5bd00073b) which is a more basic version :)

I tried it in Python, but could not do it. Can you solve it?
def tower_builder(n_floors, block_size):
    w, h = block_size
    filled_block = '*' * w
    empty_block = ' ' * w
    tower = []
    for n in range(1,n_floors+1):
        for _ in range(h):
            tower.append( empty_block * (n_floors - n) + filled_block * (2*n -1) + empty_block * (n_floors - n))
    return tower