#include <bits/stdc++.h>
using ll = long long;
template <class T>
using V = std::vector<T>;
template <class T, class U>
using P = std::pair<T, U>;
using vll = V<ll>;
using vvll = V<vll>;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
const ll MOD = 1000000007;
const ll HIGHINF = (ll)1e18;
long long powmod(long long m, long long p) {
  if (p == 0) return 1;
  long long tmp = powmod(m, p / 2);
  tmp = tmp * tmp % MOD;
  if (p & 1) tmp = tmp * m % MOD;
  return tmp;
}
int main() {
  std::cin.tie(0);
  std::ios::sync_with_stdio(false);
  int n;
  std::cin >> n;
  V<int> x(n);
  for (int i = 0; i < n; i++) std::cin >> x[i];
  long long ans = 0;
  for (int i = 0; i < n - 1; i++) {
    for (int j = 1; j < n - i; j++) {
      long long d = (ll)(x[i + j] - x[i + j - 1]);
      d = d * powmod(j, MOD - 2) % MOD;
      ans += d;
      if (ans >= MOD) ans -= MOD;
    }
  }
  for (int i = 2; i < n; i++) ans = (ll)i * ans % MOD;
  std::cout << ans << '\n';
  return 0;
}
