It is unclear whether your answer to your question represents the real problem or just an example but another way to get permutations that exclude the diagonal is to use ListCorrelate:
ListCorrelate[{0, 1, 1, 1, 1, 1}, {a, b, c, d, e, f}, 1] {b + c + d + e + f, a + c + d + e + f, a + b + d + e + f, a + b + c + e + f, a + b + c + d + f, a + b + c + d + e}
That isn't what you want obviously but my long winded explanation starts with the general form of the above:
ListCorrelate[{0, 1, 1, 1, 1, 1}, {a, b, c, d, e, f}, {1, 1}, {a, b, c, d, e, f}, Times, Plus] {b + c + d + e + f, a + c + d + e + f, a + b + d + e + f, a + b + c + e + f, a + b + c + d + f, a + b + c + d + e}
So you can get an answer by using a function other than Plus in the generalized ListCorrelate:
g[x__] := DeleteCases[{x}, 0] (* or g= DeleteCases[{##}, 0] & *) ListCorrelate[{0, 1, 1, 1, 1, 1}, {a, b, c, d, e, f}, {1, 1}, {a, b, c, d, e, f}, Times, g] {{b, c, d, e, f}, {c, d, e, f, a}, {d, e, f, a, b}, {e, f, a, b, c}, {f, a, b, c, d}, {a, b, c, d, e}}
I really like ListCorrelate but unfortunately the generalized form is much slower than the default form -- you may find it up to 2 or more orders of magnitude slower depending on your problem [plea to Wolfram: make the generalized form of ListCorrelate run fast -- there is so much it could be useful for]. So the alternative in a case like this may be to revert to the default form and replace Plus in the result:
ListCorrelate[{0, 1, 1, 1, 1, 1}, {a, b, c, d, e, f}, 1] /. Plus -> List {{b, c, d, e, f}, {a, c, d, e, f}, {a, b, d, e, f}, {a, b, c, e, f}, {a, b, c, d, f}, {a, b, c, d, e}}