arrs = [arr[x:d1 - (crop - x), y:d2 - (crop - y), z:d3 - (crop - z)] for x in
    range(crop + 1) for y in range(crop + 1) for z in range(crop + 1)]
Slicing a list in Python: is there something like -0?