I think I can, but it's a little long and not especially elegant. Let me give you the outline...perhaps someone can find a better proof.
First prove that the weights
1, 3,...,3^{n-1} will weigh any number up to \frac {1}{2} (3^n - 1)
This is done easily using the fact that any number up to (3^n - 1) can be represented as \sum_0^{n-1}{a_k 3^k}~, ~~ a_k = 0, 1, 2
(I don't know what this theorem is called but it is the basis of any notational system - binary, decimal, etc.) and \sum_0^{n-1}{3^k} = \frac{1}{2}(3^n - 1) and subtracting one from the other.
It's a little more cumbersome to prove than no other combination will generate so long a sequence...but it can be done by induction.
Clearly, no two weights must be the same if there is to be no wastage (as in the case of 1,3,9,...). Let the weights be
w_1 < w_2 < w_3...< w_n
Clearly, the largest weight that can be generated is
W = w_1 + w_2 + ... + w_n and the next largest will be
W' = w_2 + w_3 + ... + w_n = W - w_1
But since every weight can be measured so should W-1. Then clearly, W' = W- 1.
So, ~w_1 = 1
Proceeding along these lines, it can be shown that w_2 = 3.
Now assuming ~w_m = 3^{m-1} for~~ m=1, 2, 3, ..., k if we can show that w_{k+1} = 3^k we are through.
Consider all the weights and put them into 2 groups such that
W = \sum_1^k {w_m} + \sum_{k+1}^n {w_m}
Leave the second set alone. By transferring weights from the first set to the other pan (or eliminating them), it is possible to generate all weights down to -\sum_1^k {w_m} + \sum_{k+1}^n {w_m} = W - (3^k - 1).
The next lower weight must be 1 less than this and can be made by transferring back all the weights in the 'other' pan and eliminating w_{k+1}.
By subtracting the above equation from the definition of W, you get w_{k+1} = 3^k,
which is what we wanted to prove.