#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vll;

ll mod=1e9+7;

ll mpow(ll x, ll n) {
  ll ans=1;
  while(n>0) {
    if(n&1) {
      ans=ans*x%mod;
    }
    x=x*x%mod;
    n>>=1;
  }
  return ans;
}

vector<ll> tfact(1e7+1,-1);
ll fact(ll n) {
  if(tfact[n]<0) {
    if(n==0) {
      tfact[n]=1;
    }
    else {
      tfact[n]=fact(n-1)*n%mod;
    }
  }
  return tfact[n];
}

int main() {
  ll n;
  cin >> n;
  vll x(n);
  for(ll i;i<n;i++) {
    cin >> x[i];
  }
  vll back(n);
  for(int i=0;i<n;i++) {
    back[i]=mpow(i+1,mod-2);
  }
  vll sback(n);
  for(int i=0;i<n;i++) {
    if(i==0) {
      sback[i]=back[i];
    }
    else {
      sback[i]=(sback[i-1]+back[i])%mod;
    }
  }
  ll ans=0;
  for(int i=0;i<n-1;i++) {
    ans=(ans+(x[i+1]-x[i])*sback[i]%mod)%mod;
  }
  ans=ans*fact(n-1)%mod;
  cout << ans << endl;
}