#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000000 + 7;
long long N;
vector<long long> x(1e5);
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin >> N;
  for (int i = 0; i < N; i++) {
    cin >> x[i];
  }
  vector<vector<long long>> k(N + 1, vector<long long>(N + 1, 0));
  for (int i = 1; i <= N; i++) {
    if (i == 1) {
      k[i][0] = 1;
    } else {
      for (int l = 0; l < i; l++) {
        if (l == 0) {
          k[i][0] = k[i - 1][l] % MOD * (i - 1) % MOD + i - 1;
          k[i][0] %= MOD;
        } else {
          k[i][l] = k[i - 1][l] % MOD * (i - 1 - l) % MOD +
                    k[i - 1][l - 1] % MOD * (l + 1) % MOD + i - 1;
          k[i][l] %= MOD;
        }
      }
    }
  }
  long long ans = 0;
  for (int i = 0; i < N - 1; i++) {
    ans += (x[i + 1] - x[i]) % MOD * k[N - 1][i] % MOD;
    ans %= MOD;
  }
  cout << ans << endl;
  return 0;
}
