def split_box(low, high):
    """Split box into octants (lowest_corner, highest_corner) and return."""
    half_length = (high[0] - low[0]) // 2
    centre = tuple([coord + half_length for coord in low])
    octants = [
        (centre, high),
        (low, centre),
        ((low[0], centre[1], low[2]), (centre[0], high[1], centre[2])),
        ((low[0], centre[1], centre[2]), (centre[0], high[1], high[2])),
        ((centre[0], centre[1], low[2]), (high[0], high[1], centre[2])),
        ((low[0], low[1], centre[2]), (centre[0], centre[1], high[2])),
        ((centre[0], low[1], low[2]), (high[0], centre[1], centre[2])),
        ((centre[0], low[1], centre[2]), (high[0], centre[1], high[2]))
    ]

    return octants