#include <bits/stdc++.h>
using namespace std;
namespace Number {
long long int gcd(long long int a, long long int b) {
  if (a % b == 0) {
    return b;
  }
  return gcd(b, a % b);
}
long long int gcd_extend(long long int a, long long int b, long long int *x,
                         long long int *y) {
  if (a == 0) {
    *x = 0, *y = 1;
    return b;
  }
  long long int x1, y1;
  long long int gcd = gcd_extend(b % a, a, &x1, &y1);
  *x = y1 - (b / a) * x1;
  *y = x1;
  return gcd;
}
long long int mod_inv(long long int a, long long int m) {
  long long int x, y;
  long long int g = gcd_extend(a, m, &x, &y);
  long long int a_inv = (x % m + m) % m;
  return a_inv;
}
long long int mod_pow(long long int x, long long int n, long long int m) {
  if (n == 0) {
    return 1;
  } else if (n & 1) {
    long long int half = mod_pow(x, n / 2, m);
    return (half * half % m) * x % m;
  } else {
    long long int half = mod_pow(x, n / 2, m);
    return half * half % m;
  }
}
long long int mul(long long int from, long long int to, long long int m) {
  long long int ret = 1;
  for (long long int i = from; i <= to; i++) {
    ret *= i;
    ret %= m;
  }
  return ret;
}
long long int mod_comb(long long int n, long long int k, long long int m) {
  long long int mi = k < n - k ? k : n - k;
  long long int up = mul(n - mi + 1, n, m);
  long long int down = mul(1, mi, m);
  return (up * mod_inv(down, m)) % m;
}
}  // namespace Number
long long int x[100005];
const long long int M = 1e9 + 7;
long long int fact[100005];
void init() {
  fact[0] = 1;
  for (int i = 1; i < 100005; i++) {
    fact[i] = fact[i - 1] * i;
    fact[i] %= M;
  }
}
int main() {
  init();
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x[i];
  }
  long long int ans = 0;
  for (int i = 0; i < n - 1; i++) {
    for (int j = i + 1; j < n; j++) {
      long long int dis = x[j] - x[j - 1];
      long long int a = dis * fact[n - 1];
      a %= M;
      a *= Number::mod_inv(j - i, M);
      a %= M;
      ans += a;
      ans %= M;
    }
  }
  cout << ans << endl;
}
