Print arrays from the middle out
MATL, 18 bytes
_G2$:iZ^t!|X&gt;4#SY)

First input is s, second is n
This works in current version (15.0.0) of the language.
Try it online!
Explanation
_      % take input s implicitly. Negate to obtain -s
G      % push input s again
2$:    % inclusive range from -s to s
i      % take input n
Z^     % Cartesian power. Gives 2D array, with each result on a row
t!     % duplicate and transpose
|      % absolute value
X&gt;     % maximum of each column 
4#S    % sort and push the indices of the sorting
Y)     % apply as row indices into the 2D array. Display implicitly