#include <bits/stdc++.h>
using namespace std;
long long powmod(long long a, long long n, long long mod) {
  if (n == 0) return 1;
  if (n % 2 == 0) return powmod((a * a) % mod, n / 2, mod);
  return (a * powmod(a, n - 1, mod)) % mod;
}
long long mod = 1000000007;
long long n;
long long x[100000];
long long fact[100001];
long long inv[100001];
signed main() {
  long long i, j;
  fact[0] = 1;
  for (i = 1; i <= 100000; i++) fact[i] = (i * fact[i - 1]) % mod;
  for (i = 1; i <= 100000; i++) inv[i] = powmod(i, mod - 2, mod);
  cin >> n;
  if (n > 2000) {
    assert(0);
    return 0;
  }
  for (i = 0; i < n; i++) cin >> x[i];
  long long ans = 0;
  for (i = 0; i < n - 1; i++) {
    for (j = i + 1; j < n; j++) {
      long long prob = inv[j - i];
      if (j < n - 1) prob = prob * inv[j - i + 1] % mod;
      double p = 1.0 / (j - i);
      if (j < n - 1) p *= 1.0 / (j - i + 1);
      long long dist = (x[j] - x[i] + mod) % mod;
      ans += prob * dist % mod;
      ans %= mod;
    }
  }
  ans *= fact[n - 1];
  ans %= mod;
  cout << ans << endl;
  return 0;
}
