Another way: Module[{i = 0, l = #, f}, f[x_String] := Symbol[x <> ToString[++i]]; f[x_] := x; Map[f, l, {2}]] &@list > {{0, x1, x2, 0}, {0, x3, x4, x5}, {0, x6, x7, x8}, {x9, x10, x11, x12}, {x13, x14, x15, x16}, {x17, x18, x19, x20}, {x21, x22, x23, x24}, {x25, x26, x27, x28}, {0, x29, x30, x31}}